Erreur 1004-La méthode 'Open' de l'objet 'Workbooks' a échoué [Résolu]

Signaler
-
 jomany -
Bonjour,
J'essaie d'ouvrir par macro un fichier "toto.xlsm" et je tombe systématiquement sur ce message avec plantage de la macro.
Si j'intercale dans ma macro une commande pour ouvrir le même fichier converti en Excel 97 ("toto.xls"), les 2 fichiers s'ouvrent normalement sans plantage.
Cette macro fait partie d'un programme qui tourne depuis les années 2000 et que je convertis pour le rendre compatible d'Excel 2010.
Quelqu'un aurait-il une piste?
Merci

5 réponses

Messages postés
15856
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
23 avril 2021
535
Bonjourn sans code impossible de répondre.
Voir ici comment utiliser la coloration syntaxique.

Messages postés
24
Date d'inscription
jeudi 20 décembre 2012
Statut
Membre
Dernière intervention
5 novembre 2016

peut être ce code pourrait être utile

Sub OuvreExcel()
Dim a As Variant, nom As String
Dim ws As Worksheet

nom = ActiveWorkbook.Name
ChDrive "C:" ' Choix du lecteur
ChDir "C:" 'Choix du répertoire
a = Application.GetOpenFilename("(*.xlsx), *.xlsx,(*.xls), *.xls", _
, "Sélection de vos fichiers excel", , True)

'active la feuille à importer les données
Sheets("Feuil1").Activate

Select Case TypeName(a)
Case Is = "Boolean"
Exit Sub
Case Else
For b = LBound(a) To UBound(a)
Workbooks.Open a(b)
Next
End Select

Nom2 = ActiveWorkbook.Name
Cells.Select
Selection.Copy
Windows(nom).Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Windows(Nom2).Close
End Sub
MkDir chem_dat & "" & numind_dvaff
FileCopy chem_out & "" & repert_aff & "" & fich_aff,  chem_dat & "" & numind_dvaff & "" & fich_aff
Workbooks.Open Filename:=chem_dat & "" & numind_dvaff & "" & fich_aff

La macro fonctionne jusqu'à FileCopy (le fichier est créé dans le nouveau répertoire) mais elle plante sur Workbooks.open
Messages postés
32150
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 avril 2021
345
Bonjour,

déjà.. à quoi servent des doubles quotes entre chaque variable ?
& "" &
...

EDIT : Tu n'avais pas des "\" entre tes quotes ??
Le forum les a enlevé... oupsss...
Il faut les "doubler" lorsque tu postes sur le site.. c'est un bug...


MkDir chem_dat & "\" &  numind_dvaff
FileCopy chem_out & "\"& repert_aff  & "\"& fich_aff,  chem_dat  & "\"& numind_dvaff & "\"& fich_aff
Workbooks.Open Filename:=chem_dat & "\"& numind_dvaff & "\" & fich_aff


Ensuite..
As tu regardé ce que valaient tes différentes variables au moment du plantage ? Elles correspondent à ce que tu devrais avoir ?

Et tu peux aussi essayer comme ça :
 Workbooks.Open(myFile)

au lieu de
Workbooks.Open Filename:=myFile



myFile = chem_dat & "\" &numind_dvaff & "\" & fich_aff
debug.print myFile
If Dir(myFile)="" then
  MsgBox "Erreur : Le fichier n'existe pas"
else
 'Workbooks.Open Filename:=myFile
 Workbooks.Open(myFile)
End If


Au cas où le souci persiste.. pourrais tu essayer de renommer ton fichier en .XLSX au lieu de. XLSM .. pour voir si le souci ne viendrait pas de l'extension (et/ou des macros qui y seraient contenues)


Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Merci Jordane45, j'ai bien sûr regardé ce que valaient mes variables, d'ailleurs tout fonctionne jusqu'à la commande d'ouverture du fichier. J'ai par contre modifié la macro pour qu'elle ouvre un fichier vide au format .xlsm et je n'ai plus de problème. Ce sont donc les macros à l'intérieur du fichier que je veux ouvrir qui posent problème. Reste à corriger ces macros et d'abord à trouver le mot de passe mis par le concepteur (ce qui ne sera pas le plus simple).