Le script suivant a été écrit pour ouvrir tous les types de fichiers .xlsm dans un dossier et les enregistrer en tant que types .xlsx dans un nouveau répertoire, mais le script continue d'échouer lors de la tentative d'enregistrement. .xlsx.Le script VBA échoue lorsque vous tentez d'enregistrer sous .XLSX
Le message d'erreur renvoyé est une erreur d'exécution « 1004 »
Toutes les tentatives pour y remédier ont échoué, toute aide est beaucoup appriciated et je vous remercie à l'avance.
Set fso = CreateObject("scripting.filesystemobject")
Set fils = fso.GetFolder("FILE LOCATION").Files
FldrPicker = "FILE LOCATION"
With FldrPicker
myPath = FldrPicker
End With
myExtension = "*.xlsm"
myfile = Dir(myPath & myExtension)
filepath = "NEW FILE LOCATION"
Do While myfile <> ""
Set wb = workbooks.Open(Filename:=myPath & myfile)
Application.DisplayAlerts = False
wb.SaveAs = myfile & ".xlsx"
wb.Close Savechanges:=True
Application.DisplayAlerts = True
Loop
'wb.SaveAs' ne peut pas être assigné une valeur, vous devez lui passer un paramètre - ie' wb.SaveAs myfile & ".xlsx" '(Note: Si vous aviez ouvert un fichier appelé" abc.xlsm "à partir du répertoire" C: \ Temp1 \ Temp2 ", vous allez créer un fichier appelé" abc.xlsm.xlsx "dans le répertoire actif, qui est probablement l'emplacement où l'application Excel est stockée - donc vous voulez probablement vraiment 'wb. SaveAs myPath & Left (monfichier, Len (monfichier) - 5) & ".xlsx" ') – YowE3K
J'ai ajouté les paramètres suivants, mais la même erreur est renvoyée. 'teamname = Left (monfichier, Len (monfichier) - 5) &" .xlsx "' 'Destination = filepath & nomd'équipe' ' wb.SaveAs = Destination' – Paul
Si l'erreur est déclenchée en raison de l'avertissement suivant: ' Excel' ** vraiment ** n'aime pas que vous essayiez d'enregistrer un classeur '' macro activé'' sous la forme d'un fichier ordinaire, ajoutez un 'Application.DisplayAlerts = False' au début de votre code et une' Application.DisplayAlerts = True' comme fin pour forcer le problème. –