VB : Erreur 424 Object Requis

Résolu
boti59 Messages postés 22 Statut Membre -  
lermite222 Messages postés 9042 Statut Contributeur -
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. boti59 Messages postés 22 Statut Membre 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
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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. boti59 Messages postés 22 Statut Membre 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. boti59 Messages postés 22 Statut Membre 1
       
      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
      1. lermite222 Messages postés 9042 Statut Contributeur 1 199 > boti59 Messages postés 22 Statut Membre
         
        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
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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. boti59 Messages postés 22 Statut Membre 1
       
      Il s'agit du premier classeur, tu l'avais compris bien que j'ai mal indiqué la ligne d'erreur.

      cdt
      -1
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Je pense à une chose, le classeur qui contient la macro... il s'appel COMMENT ?
    -1
    1. boti59 Messages postés 22 Statut Membre 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