VB : Erreur 424 Object Requis

Résolu
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 ?
Configuration: Windows 2000
Internet Explorer 6.0

4 réponses

  1. 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
    1. Contributeur
      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
      1. 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
      2. 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
      3. Contributeur
        @boti59J'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
    2. Contributeur
      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
      1. Il s'agit du premier classeur, tu l'avais compris bien que j'ai mal indiqué la ligne d'erreur.

        cdt
        -1
    3. Contributeur
      Je pense à une chose, le classeur qui contient la macro... il s'appel COMMENT ?
      -1
      1. 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