[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 :
FileFormat Argument de type Variant facultatif. Format de fichier à utiliser quand vous enregistrez le fichier. Pour obtenir une liste des choix possibles, consultez la propriété FileFormat. Dans le cas d'un fichier existant, le format par défaut est le dernier format de fichier spécifié. Dans le cas d'un nouveau fichier, la valeur par défaut est le format de la version de Microsoft Excel en cours d'utilisation.
 

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

Statistiques des forums

Discussions
311 710
Messages
2 081 781
Membres
101 817
dernier inscrit
carvajal