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

Jomany - 2 oct. 2014 à 08:56 - Dernière réponse :  jomany
- 6 oct. 2014 à 11:37
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
Afficher la suite 

5 réponses

Répondre au sujet
Whismeril 11412 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 avril 2018 Dernière intervention - 2 oct. 2014 à 09:34
+1
Utile
Bonjourn sans code impossible de répondre.
Voir ici comment utiliser la coloration syntaxique.

Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Whismeril
tjrod 24 Messages postés jeudi 20 décembre 2012Date d'inscription 5 novembre 2016 Dernière intervention - 2 oct. 2014 à 10:40
0
Utile
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
Commenter la réponse de tjrod
0
Utile
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
Commenter la réponse de Jomany
jordane45 20584 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 avril 2018 Dernière intervention - Modifié par jordane45 le 4/10/2014 à 04:49
0
Utile
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
Commenter la réponse de jordane45
0
Utile
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).
Commenter la réponse de jomany

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.