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

Résolu
bela0202 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
 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
A voir également:

6 réponses

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

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