recherche le chemin d'un fichier

hanen85

XLDnaute Nouveau
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 de votre aide
 

hanen85

XLDnaute Nouveau
Re : recherche le chemin d'un fichier

Salut

Moi ce que j'ai fait c est de mettre tout les fichiers que je veux ouvrir dans le meme repertoire que le classeur excel.
apres quand le classeur excel est ouvert:
je recupere son chemin dans une variable avec cette commande
y = ActiveWorkbook.Path
apres je concatene Y avec le nom du fichier!!!
c est pas une methode optimisée mais ça resout au moins une partie de mon probleme en plus ça ne prend pas beaucoup de temps!!!
La dependance des fichiers par rapport à leur chemin est restreinte à une dependance vis a vis du repertoire :rolleyes:
sinon j'ai regarde la solution proposée par kjin qui me parraissait assez simple
mais quand j'ai éssayé de l'integrer dans mon code ça n'a pas marché
Les fichiers ne s ouvrent pas !!
Maintenant j vais essayer d'integrer les autres solutions proposées!!
heureusement qu'avec ce forum on a une aide genereuse

Merci
 

kjin

XLDnaute Barbatruc
Re : recherche le chemin d'un fichier

Bonsoir,
On tourne un peu en rond, non ?
Peux tu nous expliquer précisément ce que tu souhaites faire, ouvrir tous les fichiers, n'ouvrir que certains fichiers et sous condition...
En outre, on ne connait toujours pas la version excel que tu utilises
A+
kjin
 

hanen85

XLDnaute Nouveau
Re : recherche le chemin d'un fichier

hello Kjin

ce que je veux faire c est pas d'ouvrir tout les fichiers
mais plutot un seul mais ce dernier varie selon la valeur d'une certaine cellule
exemple

si cellule = "4000" ouvrir fichier "RUBRIQUE-AAA.gif"
si cellule = "6000" ouvrir fichier "Rubrique-BBB.gif"

la solution que j'ai trouvé est une solution de contournement qui resout à moitié mon probleme
je travaille sur une version excel 2003

Merci Kjin pour ton aide
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
703

Membres actuellement en ligne

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA