Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[VBA] Erreur methode .Saveas sous Excel 2003

arthur203

XLDnaute Junior
Bonjour,

J'ai une macro qui lorsque l'on appuie sur un bouton crée un mail et joint le classeur en cours à ce mail tout marche parfaitement sous Excel 2007 mais pas sous Excel 2003 (message d'erreur "Run-time '1004' method Saveas a échoué..."), pouvez vous m'aider à résoudre ce problème ? Voici la macro:

Private Sub commandButton1_Click()
Dim Destwb As Workbook
Set Destwb = ActiveWorkbook
Dim TempFilePath, TempFileName, FileExtStr, FileFormatNum As String
TempFilePath = 51
FileExtStr = ".xls"
FileFormatNum = 56

' Saves the new workbook and then mail it.

TempFilePath = "c:\temp\" & Format(Now, "yyyymmdd") & "\"
If Dir(TempFilePath, vbDirectory) = "" Then
MkDir TempFilePath
End If
TempFileName = "_test_"
With Destwb
.SaveAs Filename:=TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
On Error Resume Next
For i = 1 To 3
.SendMail "XXX@XXX.com", _
Cells(8, 3) & " - Test"
If Err.Number = 0 Then Exit For
Next i
On Error GoTo 0
.Close SaveChanges:=False
End With
End Sub


Merci !
 

arthur203

XLDnaute Junior
Re : [VBA] Erreur methode .Saveas sous Excel 2003

Marche pas sur 2007..

J'ai pensé à intégrer une ligne du genre:

If Val(Application.Version) < 12 Then
'You use Excel 97-2003
FileFormatNum = -4143
Else
FileFormatNum = 56
end if

Mais ça plante..
 

Pierrot93

XLDnaute Barbatruc
Re : [VBA] Erreur methode .Saveas sous Excel 2003

Re,

A noter que cet argument est facultatif, ce que dit l'aide vba :
 

arthur203

XLDnaute Junior
Re : [VBA] Erreur methode .Saveas sous Excel 2003

Peux tu tester ce code sur office 2003 ayant que 2007 sous le coude je ne sais pas s'il fonctionnera sous 2003. Merci!

Private Sub commandButton1_Click()
Dim Destwb As Workbook
Set Destwb = ActiveWorkbook
Dim TempFilePath, TempFileName, FileExtStr As String
TempFilePath = 51
FileExtStr = ".xls"
'FileFormatNum = 56

TempFilePath = "c:\temp\" & Format(Now, "yyyymmdd") & "\"
If Dir(TempFilePath, vbDirectory) = "" Then
MkDir TempFilePath
End If
TempFileName = "_test_"
With Destwb
.SaveAs Filename:=TempFilePath & TempFileName & FileExtStr 'FileFormat:=FileFormatNum
On Error Resume Next
For i = 1 To 3
.SendMail "xx@xx.com", _
"Test"
If Err.Number = 0 Then Exit For
Next i
On Error GoTo 0
.Close SaveChanges:=False
End With
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…