VB : Erreur 424 Object Requis

Résolu/Fermé
boti59
Messages postés
21
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
30 octobre 2009
- 17 juil. 2008 à 17:08
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
- 17 juil. 2008 à 17:48
Bonjour,

J'ai un probème lors de l'ouverture d'un classeur, Excel m'indique cette erreur :

Erreur 424 : Object Requis

J'ai beau retourner le programme dans tous les sens, je ne comprends pourquoi il ne veut pas ouvrir le classeur.
Voici le code

'------- MAJ THD V4 -----------------------------------------------------------
'Regoupement de tous les fichiers de résultats en un seul
If l > 1 Then
Workbook.Open Filename:=chemin_resultat & prefixe_resultat & dossier.Name & ".XLS"
For m = 1 To l
'Regroupement
Workbook.Open Filename:=chemin_resultat & prefixe_resultat & dossier.Name & m & ".XLS" 'ligne de l'erreur
Sheets.Copy Before:=Workbooks(NomFic & ".XLS").Sheets(1)
Windows(NomFic & m & ".XLS").Activate
ActiveWorkbook.Close
Next m
End If
'---------------------------------------------------------------------------------

Pourriez-vous m'aidez ?

Cordialement.

Thibaut
Pourquoi faire simple quand on peut faire compliquer ?

4 réponses

boti59
Messages postés
21
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
30 octobre 2009
1
17 juil. 2008 à 17:19
La ligne de l'erreur n'était pas la bonne :

'------- MAJ THD V4 -----------------------------------------------------------
'Regoupement de tous les fichiers de résultats en un seul
If l > 1 Then
Workbook.Open Filename:=chemin_resultat & prefixe_resultat & dossier.Name & ".XLS" 'ligne de l'erreur
For m = 1 To l
'Regroupement
Workbook.Open Filename:=chemin_resultat & prefixe_resultat & dossier.Name & m & ".XLS"
Sheets.Copy Before:=Workbooks(NomFic & ".XLS").Sheets(1)
Windows(NomFic & m & ".XLS").Activate
ActiveWorkbook.Close
Next m
End If
'-----------------------------------------------------------­----------------------
0
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
17 juil. 2008 à 17:12
bonjour,
tu modifie..
If l > 1 Then
Workbook.Open Filename:=chemin_resultat & prefixe_resultat & dossier.Name & ".XLS"
par
dim Fich as string
fich = chemin_resultat & prefixe_resultat & dossier.Name & ".XLS"
stop

la macro va s'arrèter sur le stop
tu tape ensuite dans la fenêtre exécution
Print Fich
et voit ce que cela donne, c'est sûrement pas la bonne adresse
A+
-1
boti59
Messages postés
21
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
30 octobre 2009
1
17 juil. 2008 à 17:16
Merci lermite222,

j'ai déjà essayé de voir si il s'agissait d'une erreur dans le chemin en reproupant dans une seule variable et en l'imprimant dans un msgbox, le chemin est tout à fait le bon !

Cordialement.
-1
boti59
Messages postés
21
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
30 octobre 2009
1
17 juil. 2008 à 17:38
Finalement, j'ai trouvé l'erreur, il s'agissait juste d'ajouter Application. devant Workbook.open, je ne sais pas pourquoi, mais à présent cela fonctionne :

'------- MAJ THD V4 -----------------------------------------------------------
'Regoupement de tous les fichiers de résultats en un seul
If l > 1 Then
MsgBox (chemin_resultat & prefixe_resultat & dossier.Name & ".XLS")
Application.Workbooks.Open Filename:=chemin_resultat & prefixe_resultat & dossier.Name & ".XLS"
For m = 1 To l
'Regroupement
Application.Workbooks.Open Filename:=chemin_resultat & prefixe_resultat & dossier.Name & m & ".XLS"
Sheets.Copy Before:=Workbooks(prefixe_resultat & dossier.Name & ".XLS").Sheets(1)
Windows(prefixe_resultat & dossier.Name & m & ".XLS").Activate
ActiveWorkbook.Close
Next m
End If
'-------------------------------------------------------------------------------

Merci tout de même lermite222 !
-1
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193 > boti59
Messages postés
21
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
30 octobre 2009

17 juil. 2008 à 17:48
J'emploi pourtant cette fonction depuis des années mais je met pas Filename:=
je fais Fich = chemin_resultat & prefixe_resultat & dossier.Name & ".XLS"
Workbooks.Open Fich
et j'ai jamais eu de problème.
Enfin, puisque ca marche...
A+
-1
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
17 juil. 2008 à 17:20
C'est le 1er classeur ou les suivants qui bugg ?
EDIT:
J'ai poster après ton dernier message, c'est où que ca bugg ?
-1
boti59
Messages postés
21
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
30 octobre 2009
1
17 juil. 2008 à 17:28
Il s'agit du premier classeur, tu l'avais compris bien que j'ai mal indiqué la ligne d'erreur.

cdt
-1
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
17 juil. 2008 à 17:40
Je pense à une chose, le classeur qui contient la macro... il s'appel COMMENT ?
-1
boti59
Messages postés
21
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
30 octobre 2009
1
17 juil. 2008 à 17:47
Désolé j'ai mal posté ma réponse, elle est tombé plus haut tu ne la sans doute pas vu :

Finalement, j'ai trouvé l'erreur, il s'agissait juste d'ajouter Application. devant Workbook.open, je ne sais pas pourquoi, mais à présent cela fonctionne :

'------- MAJ THD V4 -----------------------------------------------------------
'Regoupement de tous les fichiers de résultats en un seul
If l > 1 Then
MsgBox (chemin_resultat & prefixe_resultat & dossier.Name & ".XLS")
Application.Workbooks.Open Filename:=chemin_resultat & prefixe_resultat & dossier.Name & ".XLS"
For m = 1 To l
'Regroupement
Application.Workbooks.Open Filename:=chemin_resultat & prefixe_resultat & dossier.Name & m & ".XLS"
Sheets.Copy Before:=Workbooks(prefixe_resultat & dossier.Name & ".XLS").Sheets(1)
Windows(prefixe_resultat & dossier.Name & m & ".XLS").Activate
ActiveWorkbook.Close
Next m
End If
'-----------------------------------------------------------­--------------------

Merci tout de même lermite222 !
-1