Ouvrir classeur xlsx nom variable

Bonjour,

mes recherches via le web sur mon problème sont restées infructueuses, je m'adresse donc à vous.

je parviens à ouvrir un dossier via son adresse et nom complet depuis un classeur excel situé dans le même "path" (jusque là pas trop compliqué):

Workbooks.Open Filename:=ThisWorkbook.Path & "\IRM\IRM 2016\2016Climatology6456_01.xlsx"

le problème c'est que le "6456" est variable suivant la station de travail par laquelle la macro est lancée.

Est-il possible de remplacer cette chaine de caractères (qui sera toujours composée de quatre chiffres) par un sigle générique.

J'ai bien essayé avec le signe "*" mais sans succés (peut être pas dans une syntaxe adaptée???)

Pouvez-vous m'aider?

Merci

Bonjour,

Il te faut utiliser la fonction Dir() pour retourner le fichier qui peut correspondre. Les explications sont dans le code :

Sub Test()

    Dim Dossier As String
    Dim Fichier As String
    Dim NomFichier As String
    Dim Extension As String
    Dim Texte As String

    Dossier = ThisWorkbook.Path & "\IRM\IRM 2016\"

    NomFichier = "2016Climatology" 'plus le nom est précis, plus le filtrage l'est aussi...

    Extension = ".xlsx"

    'attention, seul le premier fichier correspondant sera retourné
    'exemple, si il y a un fichier nommé "2016Climatology6456_01.xlsx" et un autre nommé "2016Climatology6456_02.xlsx"
    'seul "2016Climatology6456_01.xlsx" sera retourné
    Fichier = Dir(Dossier & NomFichier & "*" & Extension)

    If Fichier <> "" Then Workbooks.Open Dossier & Fichier

    'Ci-dessous (en commentaire) le code pour récupérer le nom de tous les fichiers qui correspondent :
'    Fichier = Dir(Dossier & NomFichier & "*" & Extension)
'
'    Do While Len(Fichier) > 0
'
'        Texte = Texte & Fichier & vbCrLf
'
'        Fichier = Dir()
'
'    Loop
'
'    MsgBox "le dossier '" & Dossier & "' contient le(s) fichier(s) suivant(s) :" & vbCrLf & Texte

End Sub

Bonjour,

merci de votre reponse, en effet, il y a plusieurs fichiers nommés comme tel, les deux chiffres ("01", 02, ...) representent le mois.

Mais ils sont renseignés dans une cellule du fichier de base d'où est lancé la macro, je pourrais donc les remplacer par une variable (enfin, j'espere).

Je ne sais pas faire le test dans l'immèdiat, je ne manquerai pas de vous renseigner la suite (et fin) des évènements

Bonne journée (soirée, nuit)

Rechercher des sujets similaires à "ouvrir classeur xlsx nom variable"