Error 400 VBA - Mac et Windows 11
Chers amis d'Excel,
Je me permets de venir chercher un peu d'aide ici car j'avais une Macro qui fonctionnait à merveille, mais qui depuis que mon PC est passé sous Windows 11, me retourne une erreur 400 à la fin du processus.
La macro est simple, elle sauvegarde le document actuel sous un autre nom en récupérant des informations de 2 cellules.
Il y a une variante de macro pour les utilisateurs de Mac.
Voici le code qui me retourne l'erreur:
Sub EnregistrerClasseur()
Dim dateDuJour As String
Dim reference As String
Dim nomFichier As String
Dim cheminFichier As Variant
' Date du jour
dateDuJour = Format(Date, "yyyy.mm.dd")
' Ref de la cellule C5
reference = Range("C5").Value
' Creation du nom du fichier
nomFichier = dateDuJour & "_" & reference & "_Note de frais.xlsm"
' Ouvrir la boite de dialogue pour choisir l'emplacement de sauvegarde
#If Mac Then
' Utiliser la methode MacScript pour afficher la boite de dialogue sur Mac
cheminFichier = MacScript("return POSIX path of (choose file name with prompt ""Enregistrer sous"" default name """ & nomFichier & """ default location (path to documents folder))")
#Else
' Utiliser la boite de dialogue standard pour Windows
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = nomFichier ' Nom du fichier propose
.FilterIndex = 1 ' Filtre pour les fichiers Excel
If .Show = -1 Then ' Si l'utilisateur a selectionne un emplacement
cheminFichier = .SelectedItems(1)
Else
Exit Sub ' Annuler si aucun emplacement selectionne
End If
End With
#End If
' Enregistrer le classeur au format .xlsm avec le nom genere et l'emplacement choisi
ThisWorkbook.SaveAs cheminFichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Je vous remercie d'avance pour votre aide.
Bonne journée !
Bonjour,
Pas d'erreur constatée de mon côté sauf, si lors du choix de l'emplacement du fichier, je ne sélectionne pas l'extension" .xlsm", ce qui génère l'erreur 1004. sinon, c'est correct.
Cdlt
Merci Arturo,
Ta réponse m'a permis de voir ce qui ne jouait plus.
La ligne suivante doit être adapté avec la valeur 2 pour prendre automatiquement le format XLSM.
.FilterIndex = 1 ' Filtre pour les fichiers Excel
J'ai adapté et tout est rétabli.
Cordialement