white-spirit
XLDnaute Occasionnel
Re-Bonjour tt le monde,
j'ai essayé ce matin de trouver de l'aide pour utiliser un convertisseur de format dans du code vba, mais je n'ai pas eu de réponse, pas grave !!
J'essaie alors ceci:
je confie un fichier .xls créé avec Excel 2002 (contient des macros) à des tiers, qui me le renvoient renseigné, mais il arrive qu'ils me l'enregistrent en .xlsm (Excel 2007-2013).
Ils ne respectent pas souvent la consigne d'enregistrer en format .xls pour Excel 97-2003.
D'où l'idée de mettre une instruction dans le workbook du fichier pour imposer l'enregistrement en .xls et à la bonne version. Je sais qu'il faut utiliser la procédure BeforeSave, et j'essaie avec le code suivant:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim nom As String
Dim épreuve As String
Dim chemin As String
épreuve = Range("C1").Text
nom = "Liste des engagés " & épreuve
chemin = ThisWorkbook.Path & "\" & nom
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=chemin, FileFormat:=56
d'après mes recherches, 56 pour fileformat correspond au cde .xls version 97-2003
en mode pas à pas, tt va bien jusqu'à la commande "activeworkbook.saveas........" ou j'ai l'erreur "La méthode SaveAs de lobjet Workbook à échoué"
si je supprime l'instruction FileFormat, ça fonctionne, mais si je modifie la variable "épreuve", Excel plante !!
Quelqu'un aurait-il déja pratiqué ce type d'instructions ?? Merci d'avance.
Cordialement
WS
j'ai essayé ce matin de trouver de l'aide pour utiliser un convertisseur de format dans du code vba, mais je n'ai pas eu de réponse, pas grave !!
J'essaie alors ceci:
je confie un fichier .xls créé avec Excel 2002 (contient des macros) à des tiers, qui me le renvoient renseigné, mais il arrive qu'ils me l'enregistrent en .xlsm (Excel 2007-2013).
Ils ne respectent pas souvent la consigne d'enregistrer en format .xls pour Excel 97-2003.
D'où l'idée de mettre une instruction dans le workbook du fichier pour imposer l'enregistrement en .xls et à la bonne version. Je sais qu'il faut utiliser la procédure BeforeSave, et j'essaie avec le code suivant:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim nom As String
Dim épreuve As String
Dim chemin As String
épreuve = Range("C1").Text
nom = "Liste des engagés " & épreuve
chemin = ThisWorkbook.Path & "\" & nom
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=chemin, FileFormat:=56
d'après mes recherches, 56 pour fileformat correspond au cde .xls version 97-2003
en mode pas à pas, tt va bien jusqu'à la commande "activeworkbook.saveas........" ou j'ai l'erreur "La méthode SaveAs de lobjet Workbook à échoué"
si je supprime l'instruction FileFormat, ça fonctionne, mais si je modifie la variable "épreuve", Excel plante !!
Quelqu'un aurait-il déja pratiqué ce type d'instructions ?? Merci d'avance.
Cordialement
WS