Problème d'execution 1004 Methode SaveAs a échoué

Résolu
Bonjour,

je corrige les anomalies et j'ai eu cette erreur Problème d'exécution 1004 Méthode SaveAs a échoué plus cette ligne :

 wbA.SaveAs ActiveWorkbook.Path & "\resultat\" & wb.Worksheets(1).Cells(ldebut,1) & ".xls"


pour plus de précision voici le bout de code :

Sub TerminerFichier(wb As Object, ldebut As Long, lfin As Long)
' Déclarations
    Dim wbPartiel As Object
    Dim wbA As Object
 
    
    Set wbPartiel = CreateObject("Excel.Application")
    wbPartiel.Application.Workbooks.Add
    Set wbA = wbPartiel.ActiveWorkbook
    wb.Worksheets(1).Range("A" & ldebut & ":Q" & lfin).Copy
    wbA.Worksheets(1).Range("A1:Q" & lfin - ldebut + 1).Select
    wbA.Worksheets(1).PasteSpecial
    wbA.Worksheets(1).Range("A1:Q" & lfin - ldebut + 1).Sort Key1:=wbPartiel.ActiveWorkbook.Worksheets(1).Columns("B"), Order1:=xlAscending, Key2:=wbPartiel.ActiveWorkbook.Worksheets(1).Columns("C"), Order2:=xlAscending, Key3:=wbPartiel.ActiveWorkbook.Worksheets(1).Columns("D"), Order3:=xlAscending
    FormatterFichier wbPartiel
        
    ' Vérification de l'absence de la génération précédente
    If FileExists(ActiveWorkbook.Path & "\resultat\" & wb.Worksheets(1).Cells(ldebut, 1) & ".xls") Then
        Kill ActiveWorkbook.Path & "\resultat\" & wb.Worksheets(1).Cells(ldebut, 1) & ".xls"
    End If
    wbA.SaveAs ActiveWorkbook.Path & "\resultat\" & wb.Worksheets(1).Cells(ldebut, 1) & ".xls"
    wbA.Close
    Set wbA = Nothing
    Set wbPartiel = Nothing
    
    ' Appeler la compression du fichier
    CompresserFichier wb.Worksheets(1).Cells(ldebut, 1)
End Sub(1).Cells(ldebut, 1)
End Sub


Est qu'il y a quelqu'un qui peut m'aider là-dessus je serai reconnaissante,
Merci bcp

6 réponses

  1. Contributeur
    Bonjour,

    Comme tu sauvegardes en format ancien, il faut l'indiquer :
    wbA.SaveAs ActiveWorkbook.Path & "\resultat\" & wb.Worksheets(1).Cells(ldebut, 1) & ".xls", xlExcel7
    0
    1. Merci beaucoup pour ta réponse mais j'ai tjrs le même message d'erreur :(
      0
  2. SVP il Y'a quelqu'un qui peut m'aider.
    Merci
    0
    1. Contributeur
      Bonjour,

      Pourtant, cela fonctionne mais il faut que ton sous-répertoire existe.

      http://www.cjoint.com/c/FDgtOHlLSGl

      Public Sub test()
         Dim wbA As Object
          Set wbA = ActiveWorkbook
          wbA.SaveAs ActiveWorkbook.Path & "\" & wbA.Worksheets(1).Cells(1, 1) & ".xls", xlExcel8
      End Sub
      
      0
      1. J'ai testé avec
        wbA.SaveAs ActiveWorkbook.Path & "\" & wbA.Worksheets(1).Cells(1, 1) & ".xls", 56

        et ca passe mais j'ai un autre message d'erreur :
        Microsoft office Excel attend la fin de l'exécution d'une action OLE d'une autre application

        est ce que vous avez une idée de qu'est ce que ca peut être ce problème encore

        Merci pour votre aide
        0
      2. Puis mon sous répertoire il existe tjrs
        0
    2. Bonjour,

      Finalement ca a marché pour l'enregistrement avec xlExel8 mais j'ai un problème les fichiers ne s'ouvre pas avec Excel 2013. est ce que je mets dans le code VBA l'extension xlsx pour que je puisse l'ouvrir sous excel 2013 ou quoi ?, car je travaille sur une machine virtuelle avec excel 97-2003 et je dois envoyé ces fichiers avec mon poste normal sous excel 2013 mais les fichiers sont illisible.
      qu'est ce que je peux faire.

      Merci pour votre aide
      0
      1. Contributeur
        Bonjour,

        les fichiers sont illisible.
        Cela vient du fait qu'ils ne sont pas bien enregistrés car sinon 2013 lis très bien xls correctement enregistré comme celui que je t'ai mis au-dessus.
        0
      2. @gbinformeBonjour ,

        Merci pour ta réponse, ca marché avec le code que tu m'a mis mais le problème qu'il enregistre les donnée sous forme d'image c'est pour cela avec office 2013 c'est flou flou en voit rien.
        0
    3. Contributeur
      Bonjour,

      C'est quoi l'intérêt de créer une nouvelle session excel alors qu'il est déjà lancé ?
      Sinon crée ton fichier en mode compatibilité, il sera directement au format 97-2003 plutôt que de devoir le convertir ensuite.
      eric
      0
      1. Bonjour,

        Merci bcp pour vos réponse, le problème que ce Code : '**************************************************************
        '* TerminerFichier() *
        '* Phase finale de formattage des fichiers *
        '* *
        '* *
        '**************************************************************

        Sub TerminerFichier(wb As Object, ldebut As Long, lfin As Long)
        ' Déclarations
        Dim wbPartiel As Object
        Dim wbA As Object

        Set wbPartiel = CreateObject("Excel.Application")
        wbPartiel.Application.Workbooks.Add
        Set wbA = wbPartiel.ActiveWorkbook

        wb.Worksheets(1).Range("A" & ldebut & ":Q" & lfin).Copy
        wbA.Worksheets(1).Range("A1:Q" & lfin - ldebut + 1).Select
        wbA.Worksheets(1).PasteSpecial
        wbA.Worksheets(1).Range("A1:Q" & lfin - ldebut + 1).Sort Key1:=wbPartiel.ActiveWorkbook.Worksheets(1).Columns("B"), Order1:=xlAscending, Key2:=wbPartiel.ActiveWorkbook.Worksheets(1).Columns("C"), Order2:=xlAscending, Key3:=wbPartiel.ActiveWorkbook.Worksheets(1).Columns("D"), Order3:=xlAscending
        FormatterFichier wbPartiel

        ' Vérification de l'absence de la génération précédente
        If FileExists(ActiveWorkbook.Path & "\resultat\" & wb.Worksheets(1).Cells(ldebut, 1) & ".xls") Then
        Kill ActiveWorkbook.Path & "\resultat\" & wb.Worksheets(1).Cells(ldebut, 1) & ".xls"
        End If
        wbA = ActiveWorkbook
        wbA.SaveAs ActiveWorkbook.Path & "\resultat\" & wb.Worksheets(1).Cells(ldebut, 1) & ".xls", xlExecel8
        wbA.Close
        Set wbA = Nothing
        Set wbPartiel = Nothing

        ' Appeler la compression du fichier
        CompresserFichier wb.Worksheets(1).Cells(ldebut, 1)
        End Sub

        il crée les fichiers mais je viens de voir que les données sont inséré dans le tableau sous forme d'image c'est pour cela quand je l'ouvre avec office 2013 il est illisible, si vous pouvez m'aider a résoudre ce problème je serai reconnaissante je suis bloqué je ne sais pas quoi faire
        0
      2. Contributeur
        Personnellement je ne connais pas le format xlExecel8
        0
    4. Bonjour,

      Qui peut me dire ce qui ne vas pas sur ce code car j'ai tjrs l'erreur 1004

      Sub TerminerFichier(wb As Object, ldebut As Long, lfin As Long)
      ' Déclarations
      Dim wbPartiel As Object
      Dim wbA As Object

      Set wbPartiel = CreateObject("Excel.Application")
      wbPartiel.Application.Workbooks.Add
      Set wbA = wbPartiel.ActiveWorkbook

      wb.Worksheets(1).Range("A" & ldebut & ":Q" & lfin).Copy
      wbA.Worksheets(1).Range("A1:Q" & lfin - ldebut + 1).Select
      wbA.Worksheets(1).PasteSpecial
      wbA.Worksheets(1).Range("A1:Q" & lfin - ldebut + 1).Sort Key1:=wbPartiel.ActiveWorkbook.Worksheets(1).Columns("B"), Order1:=xlAscending, Key2:=wbPartiel.ActiveWorkbook.Worksheets(1).Columns("C"), Order2:=xlAscending, Key3:=wbPartiel.ActiveWorkbook.Worksheets(1).Columns("D"), Order3:=xlAscending
      FormatterFichier wbPartiel

      ' Vérification de l'absence de la génération précédente
      If FileExists(ActiveWorkbook.Path & "\resultat\" & wb.Worksheets(1).Cells(ldebut, 1) & ".xls") Then
      Kill ActiveWorkbook.Path & "\resultat\" & wb.Worksheets(1).Cells(ldebut, 1) & ".xls"
      End If
      wbA.SaveAs ActiveWorkbook.Path & "\resultat\" & wb.Worksheets(1).Cells(1, 1) & ".xls"
      Set wbA = Nothing
      Set wbPartiel = Nothing

      ' Appeler la compression du fichier
      CompresserFichier wb.Worksheets(1).Cells(ldebut, 1)
      End Sub
      0