Symptômes
Lorsque vous exécutez une macro Visual Basic pour Applications dans Microsoft Excel, vous pouvez recevoir le message d’erreur suivant ou similaire :
Erreur d’utilisation « 1004
» : la méthode « SaveAs » de l’objet « _Worksheet » a échoué
Cause
Ce comportement peut se produire lorsque les deux conditions suivantes sont vraies :
-
Vous utilisez une macro Visual Basic pour Applications pour enregistrer une feuille de calcul.
- et- -
Vous spécifiez le format de fichier en tant que constante xlWorkbookNormal.
Par exemple, le code suivant entraîne cette erreur :
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=xlWorkbookNormal
End Sub
Solution de contournement
Microsoft fournit des exemples de programmation à des fins d’illustration uniquement, sans garantie explicite ou implicite, y compris, de manière non limitative, les garanties implicites de qualité marchande et/ou d’adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du Support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière, mais ils ne peuvent pas modifier les exemples en vue de vous fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques.
Si vous n’avez qu’une expérience en programmation limitée, vous pouvez contacter un partenaire Microsoft Certified ou des services consultatifs Microsoft. Pour plus d’informations, visitez ces sites
web Microsoft : Partenaires Microsoft Certified Partners - https://partner.microsoft.com/global/30000104
Microsoft Advisory Services - http://support.microsoft.com/gp/advisoryservice
Pour plus d’informations sur les options de support disponibles et sur la façon de contacter Microsoft, consultez le site web Microsoft suivant
: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS Pour contourner ce problème, modifiez la spécification du format de fichier de la constante xlWorkbookNormal à 1. L’exemple de code fonctionne normalement s’il est modifié en :
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=1
End Sub
REMARQUE Même si vous sauvegardez une feuille de calcul, toutes les feuilles de calcul du classeur sélectionné sont enregistrées lorsque le format de fichier est xlWorkbookNormal ou 1.
État
Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés au début de cet article.