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

Résolu
bela0202 Messages postés 8 Statut Membre -  
 bela0202 -
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. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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. bela0202 Messages postés 8 Statut Membre
       
      Merci beaucoup pour ta réponse mais j'ai tjrs le même message d'erreur :(
      0
  2. bela0202 Messages postés 8 Statut Membre
     
    SVP il Y'a quelqu'un qui peut m'aider.
    Merci
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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. bela0202 Messages postés 8 Statut Membre
       
      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. bela0202 Messages postés 8 Statut Membre
       
      Puis mon sous répertoire il existe tjrs
      0
  4. bela0202 Messages postés 8 Statut Membre
     
    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. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      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
      1. bela0202 Messages postés 8 Statut Membre > gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour ,

        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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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. bela0202 Messages postés 8 Statut Membre
       
      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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Personnellement je ne connais pas le format xlExecel8
      0
  7. bela0202
     
    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