Macro pour ouvrir un fichier local en fonction de la valeur d'une cellule

Bonjour à tous !

J'ai créé une petite macro pour ouvrir une map Visio en local. Cette macro utilise la donnée de la cellule A5 pour ouvrir le fichier dans le répertoire : C:\Data\Map_X.vsdx

Par exemple, je filtre ma liste "Map" pour n'afficher que Map_3 et j'aimerais que ma macro ouvre le fichier dans une base de donnée dédiée : C:\Data\Map_3.vsdx. Voila à quoi cela ressemble :

Sub Macro2test()

valeur = Range("A5").Value

OuvrirFichier ("C:\Data\" & valeur & ".vsdx")

End Sub

Avec :

Public Function OuvrirFichier(MonFichier As String)

On Error GoTo OuvertureFichierErreur

'vérifie si le fichier existe

If Len(Dir(MonFichier)) = 0 Then

OuvrirFichier = False

Exit Function

Else

End If

'ouvre le fichier dans son application associée

Dim MonApplication As Object

Set MonApplication = CreateObject("Shell.Application")

MonApplication.Open (MonFichier)

OuvrirFichier = True

Set MonApplication = Nothing

Exit Function

OuvertureFichierErreur:

Set MonApplication = Nothing

OuvrirFichier = False

End Function

Pour l'instant, cette macro prends en compte la valeur de la cellule A5 alors que lorsque je filtre pour n'afficher que Map_3, la cellule correspondante est la cellule A7 (et non A5). Donc aujourd'hui, ma macro ne peut qu'ouvre Map_1 (Valeur de la case A5).

Au lieu de prendre en compte la valeur de la cellule A5, j'aimerais prendre en compte la valeur de la case dans la colonne A à la 5ème ligne. Le problème dans la macro est en rouge. Est-ce possible ?

J'espère avoir été clair !

Je vous remercie !

20map.xlsm (49.96 Ko)

Salut,

Essaye de remplacer ton code de Macro2test par ce code et redis moi.

   Range("A4").Select
   Selection.End(xlDown).Select
   valeur = Selection.Cells.Value
   OuvrirFichier ("D:\users\S598074\S598074 Benjamin\BD_VSM\" & valeur & ".vsdx")
    

C'est parfait ! Merci beaucoup Mus54 !

Re,

Content d'avoir t'aidé.

Rechercher des sujets similaires à "macro ouvrir fichier local fonction valeur"