Workbooks.Open -> symbole * non reconnu

Bonjour,

J'ai récupéré le code VBA excel d'une personne que je dois modifier.

Dans ce code il y a cette ligne :

Workbooks.Open (ThisWorkbook.Path & "\*NomFichier*.xlsx")

Le caractère * permet de remplacer n'importe quel caractère qui se situent avant et après "NomFichier" ce qui est nécessaire dans ce cas.

Lors du lancement de la macro j'obtiens l'erreur suivante :

-> Erreur d'éxecution 404, la méthode Open de l'objet Workbooks a échoué

En modifiant le nom du Fichier pour qu'il s'appelle exactement "NomFichier" (rien avant et après) et en lançant ce code :

Workbooks.Open (ThisWorkbook.Path & "\NomFichier.xlsx")

-> Le fichier s'ouvre sans aucun problème.

Le caractère * qui permet de remplacer n'importe quel caractère semble ne pas fonctionner sur mon PC.

je me demandais si :

  • > cela venait de la version Excel
  • > il y a aurait une Référence (librairie) que je devrais cocher

Merci par avance de votre aide

Bonjour,

Je serais tenté de dire que l'on ne peut pas utiliser de caractère générique (type *) dans cette instruction, et qu'il ne s'agit pas d'un bug. Ce qui semble logique dans la mesure où Excel n'ouvre qu'un fichier à la fois, même si plusieurs répondent au critère donné (exemple : NomFichier1 et NomFichier2, lequel doit on ouvrir !).

A mon avis, il faudrait donc balayer les fichiers d'un répertoire, et comparer leur nom avec la syntaxe type pour décider ou non si on l'ouvre... Je vous propose un code sous peu.

Bonjour et bienvenue sur le forum

Tu devrais mettre :

Workbooks.Open (ThisWorkbook.Path & "\*NomFichier*")

Ainsi le fichier, s'il existe, s'ouvrira, qu'il ait comme extension ".xls", ".xlsx", ou encore ".xlsm"

Bye !

Bonjour,

Ces deux lignes de code :

Workbooks.Open (ThisWorkbook.Path & "\*NomFichier*.xlsx")

et

Workbooks.Open (ThisWorkbook.Path & "\*NomFichier*")

Sont très proches, et aucune des deux ne fonctionne sur mon PC.

A tester :

Sub OuvertureFichierConditionnelle()

    Dim Chemin As String, Fichier As String, SyntaxeType As String

    Chemin = ThisWorkbook.Path & "\" 'Répertoire
    SyntaxeType = "NomFichier" 'Nom type du fichier
    Fichier = Dir(Chemin & "*" & SyntaxeType & ".xls")
    Do While Len(Fichier) > 0 'Boucle sur les fichiers
        Workbooks.Open (Fichier)
        'Instructions
        ActiveWorkbook.Close False 'Fermeture
        Fichier = Dir()
    Loop

End Sub

Ces deux lignes de code ...

Sont très proches, et aucune des deux ne fonctionne sur mon PC.

Ejn effet. j'ai répondu trop vite et j'aurais dû lire la réponse de Pedro...

Essaie cette instruction, que j'ai testée, pour le coup :

Set classeur = Workbooks.Open(ThisWorkbook.Path & "\" & Dir(ThisWorkbook.Path & "\" & "*NomFichier.xls*"))

"Classeur" est une variable de type workbook qui représente le fichier qui s'ouvre.

Bye !

Merci à vous deux pour la qualité de vos réponse.

Et effectivement je trouve votre code beaucoup mieux structuré.

Je viens de basculer le projet sur le réseau afin qu'un collègue puisse tester.

Et là magie, tout fonctionne correctement.

Je teste à nouveau en local -> et là à nouveau la même erreur.

La bonne nouvelle c'est que je vais pouvoir continuer à avancer en travaillant sur le réseau.

La mauvaise c'est que je ne comprends pas pourquoi cette ligne de code fonctionne sur le réseau et pas en local......

Rechercher des sujets similaires à "workbooks open symbole reconnu"