VBA enregistrer le fichier d'xlsm en xlsx
Bonsoir,
Je n'arrive pas à trouver mon erreur dans la macro syntaxe ( en bleu) suivante.
Je souhaite en effet enregistrer mon fichier xlsm dans le meme répertoire en XLSX mais que cela reste dynamique c'est à dire que le chemin du répertoire soit automatisé et que le nom du classeur excel à sauvegarder en xlsx soit repris automatiquement. J'en ai 60 à enregistrer d'xlsm à xlsx.
Merci par avance pour votre aide,
Anna
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Sub XLSXSave()
Application.DisplayAlerts = False
Dim Fichier As String
Fichier = ThisWorkbook.FullName
With ActiveWorkbook
.SaveAs FileName:=ThisWorkbook.Path & "\" & Fichier, FileFormat:=xlOpenXMLWorkbook
End With
Dim wb As Workbook
For Each wb In Workbooks 'boucle sur tous les classeurs ouverts
wb.Close True 'fermeture du classeur avec sauvegarde
Next
ActiveWorkbook.Close
Application.Quit
Application.DisplayAlerts = True
End Sub |
vba enregistrer le fichier xlsm en xlsx
Bonjour,
Essai ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
Sub XLSXSave()
Dim wb As Workbook
Dim Fichier As String
Application.DisplayAlerts = False
Fichier = ThisWorkbook.FullName ' fichier comprend le chemin + nom fichier avec .xlsm (FullName)
Fichier = Left(Fichier, Len(Fichier) - 4) & "xlsx" ' remplace l'extension par .xlsx exigée dans la fileformat
MsgBox Fichier ' uniquement pour voir le nom du fichier transformé
With ActiveWorkbook
.SaveAs Filename:=Fichier, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 'syntaxe trouvée à partir de l'enregistreur de macro
End With
For Each wb In Workbooks 'pourquoi cette boucle alors qu'un seul fichier est traité
wb.Close True
Next
ActiveWorkbook.Close
Application.Quit
Application.DisplayAlerts = True
End Sub |
Attention : Je ne suis pas certain que "thisworkbook.fullname" soit vraiment ce que tu veux.
Il me semble que c'est plutôt "workbook" (un fichier préalablement ouvert) car sinon, sauf erreur de ma part, c'est le fichier contenant cette macro dont tu vas changer l'extension et ce faisant perdre lesdites macros.
Fais une sauvegarde avant de faire l'essai.
Cordialement,