> Tous les forums > Forum Bureautique
 Récuperer le chemin d'un fichier en VBA
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
nafrouta
  Posté le 23/05/2009 @ 20:12 
Aller en bas de la page 
Petite astucienne

Bonjour

J'ai crée une macro qui ouvre selon la valeur d'une cellule un fichier donné.
je vais donc solliciter l'ouverture d'une dizaine de fichiers.
La macro utilise le chemin de ces fichiers qui sont contenus dans un répertoir sur le bureau.
J'ai peur que mon code soit trop fragile, puisque à chaque fois que l'utilisateur change la position des fichiers lus le chemin change et donc la macro ne marche plus!!!

Je veux faire en sorte que lorse que la macro est déclenchée une recherche du fichier en paramêtre s'effectue et le chemin est récupéré ainsi ma macro se ra exécutée même si le path change.

Je suis extremement débutante en VBA et je vois vraiment pas une façon de faire je trouve que c'est trop compliqué!!!

Pourrez vous m'aider ?????

voila le code de ma macro

Code:
Sub OpenFile()

Dim strFileName As String
Dim X
Dim Y
If Cells(18, 6) = "F" Then
strFileName = " Le chemin du fichier"
X = OuvrirDocument(strFileName)
End If
End sub


et dans le module

Code:
Option Explicit
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long


Function OuvrirDocument(strChemin As String)
'Déclaration des variables
Dim strErreur As String
Select Case ShellExecute(0, "open", strChemin, vbNullString, vbNullString, 1)
Case 0: strErreur = "Le système manque de mémoire ou de ressources, l'exécutable est corrompu ou réallocations non valides."
Case 2: strErreur = "Fichier non trouvé."
Case 3: strErreur = "Chemin non trouvé."
Case 5: strErreur = "Une tentative a été faite pour se lier dynamiquement à une tache, ou il y a eu une erreur de partage ou de protection réseau."
Case 6: strErreur = "La librairie requiert des segments de données séparés pour chaque tâche."
Case 8: strErreur = "Il n 'y a pas assez de mémoire disponible pour lancer l'application."
Case 10: strErreur = "Version de Windows incorrecte."
Case 11: strErreur = "Le fichier exécutable n'est pas correct, il se peut que ce ne soit pas une application Windows, ou qu'il y ait une erreur dans le fichier .EXE;"
Case 12: strErreur = "L'application a été conçue pour un autre système d'exploitation."
Case 13: strErreur = "L'application a été conçue pour MS-DOS 4.0."
Case 14: strErreur = "Le type de fichier exécutable est inconnu."
Case 15: strErreur = "Tentative de chargement d'une application en mode réel."
Case 16: strErreur = "Tentative de charger une seconde instance d'un fichier exécutable contenant plusieurs segments de données qui ne sont pas marqués en lecture seule."
Case 19: strErreur = "Tentative de charger un fichier exécutable compressé. Le fichier doit être décompressé avant d'être chargé."
Case 20: strErreur = "Fichier de librairie liée dynamiquement (DLL) incorrect, une des DLLs requise pour exécuter cette application est corrompue."
Case 21: strErreur = "L 'application requiert les extensions Microsoft Windows 32-bit."
Case 31: strErreur = "Il n 'y a pas d'association pour le type de fichier spécifié, ou il n'y a pas d'association pour l'action choisie pour le type de fichier choisi."
End Select
If strErreur <> "" Then
MsgBox strErreur, vbCritical, "Erreur"
End If
End Function

Merci pour votre aide

Publicité
rj390111
 Posté le 24/05/2009 à 20:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Voilà une procédure qui permet de stocker dans un tableau la liste des fichiers Excel du répertoire "Mes documents" Cela pourrait vous donnez des idées.
Dim strFileName () As String
Dim i, j As Integer
With Application.FileSearch
    .NewSearch
    .LookIn = "C:\Mes Documents"
   .SearchSubFolders = True
   .FileName = "xls"
   .MatchTextExactly = True
   .Execute
   j = .FoundFiles.Count
   Redim strFileName (j)
   For i = 1 To j
       strFileName(i) = .FoundFiles(i)  
   Next i
End With 

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Boîtier PC moyen-tour MSI MAG Forge 121A Airflow (verre trempé, 4 ventilateurs RGB)
60,53 € 80 € -24%
Montre connectée Xiaomi Redmi Watch 5 Active
30,79 € 49,99 € -38%
@AliExpress
Ecran 27 pouces KTC H27T27 (QHD, IPS, 100 Hz, 1 ms, HDR10)
91,76 € 120 € -24%
@AliExpress
Mini PC GEEKOM GT1 Mega (Intel Core U9-185H, 32 Go RAM, SSD 2 To, Arc 8, AI Boost, Windows 11 Pro)
949 € 1149 € -17%
@Geekbuying
16 Go de mémoire DDR5 SODIMM Crucial 5600 MHz
39,12 € 55 € -29%
@Amazon
Carte mémoire SDXC UHS-I U3 SanDisk Extreme Pro 64 Go (jusqu'à 200 Mo/s)
12,60 € 16 € -21%
@Amazon

Sujets relatifs
récupérer un fichier grâce à son chemin
Recuperer un fichier annulé par erreur
fichier .DOCX corrompu. Cmt récupérer le texte ?
récuperer un fichier word corrompu
Chemin fichier dont nom .doc est variable
Recupérer un fichier .odt corrompu SVP !
Récupérer un fichier word remplacé
Récuperer un fichier calc
Récupérer un fichier supprimé sur un autre DD
comment récupérer fichier open office .odt .ods
Plus de sujets relatifs à Récuperer le chemin d''un fichier en VBA
 > Tous les forums > Forum Bureautique