A partir d'Excel 2007, il est recommandé de fournir un argument FileFormat
à la commande Workbook.SaveAs
car même si vous avez spécifié un nom de fichier .xls mais sans argument FileFormat
, il rendra le fichier corrompu et impossible à lire dans Excel 2003 puisque le nouveau fichier enregistré prendra le format de l'ActiveWorkbook (qui serait 2007).SaveAs L'argument FileFormat dans Excel n'est pas dépendant de la version
Pour enregistrer dans Excel 2003 format compatible, il est suggéré d'utiliser ces FileFormat
valeurs suivantes: - si dans Excel 2003 et dans Excel 2007 afin:
If Val(Application.Version) < 12 Then
' You use Excel 97-2003
FileExtStr = ".xls": FileFormatNum = -4143
Else
' you use excel 2007 or later
FileExtStr = ".xls": FileFormatNum = 56
End If
Cependant j'ai essayé d'employer -4143 indépendamment si le client exécutant était Excel 2003 ou 2007 et cela a fonctionné bien. Quelqu'un peut-il confirmer si c'est le cas?
Source: Use VBA SaveAs in Excel 2007-2010