Enregistrer copie modèle en xlsm

4 réponses
Avatar
martine.leport
Bonjour,
J'ai un mod=C3=A8le excel avec macro enregistr=C3=A9 en .xltm, lorsque j'ou=
vre ce mod=C3=A8le un nouveau fichier est cr=C3=A9=C3=A9 et j'aimerais lors=
du lancement d'une macro que ce fichier s'enregistre en xlsm et non en xls=
x.
J'ai essay=C3=A9 cela mais :

Dat =3D Day(Date) & "-" & Month(Date) & "-" & Year(Date)
nomfichier =3D "C:\Users\toto\Desktop\Fichier pointage magasin " & Dat & ".=
xlsm"
ThisWorkbook.SaveCopyAs nomfichier

ou=20
ActiveWorkbook.SaveAs Filename:=3Dnomfichier

Cela ne fonctionne pas


Merci =C3=A0 vous
Caroual

4 réponses

Avatar
News.aioe.org
Bonjour,
Sous Windows 2016,
Ceci fonctionne très bien. J'ai testé l'enregistrement
aussi sur mon bureau, Tout est Ok.
Quel est le mesage d'erreur?
'--------------------------------------------------
Private Sub Workbook_Open()
Dim Dat As Date, NomFichier As String
Dat = Day(Date) & "-" & Month(Date) & "-" & Year(Date)
'NomFichier = "C:UserstotoDesktopFichier pointage magasin " & Dat &
".xlsm"
'Pour les besoins de mon test, c'était mon chemin!
NomFichier = "C:UsersmichdDesktopFichier pointage magasin " & Dat &
".xlsm"
ThisWorkbook.SaveCopyAs Filename:=NomFichier
End Sub
'--------------------------------------------------
MichD
Avatar
News.aioe.org
Bonjour,
Si tu utilises la méthode "SaveAs", tu dois obligatoirement
utiliser le paramètre FileFormat.
La ligne de commande devient :
ActiveWorkbook.SaveAs Filename:=nomfichier, FileFormat:R
52 c'est la valeur numérique de cette constante :
xlOpenXMLWorkbookMacroEnabled
Tu peux regarder dans l'aide-VBA d'Excel ou tu peux déclarer une variable
comme suit :
Immédiatement après avoir écrit le symbole "=", tu as une liste déroulante
qui apparait et tu peux choisir le type de format que tu désires.
Évidemment, cela est placé au début de la procédure.
Dim X As XlFileFormat
X = xlOpenXMLWorkbookMacroEnabled
La problématique avec SaveCopyAs, elle n'a pas de paramètre "FileFormat". On
utilise habituellement dans un fichier déjà enregistré qui est en mémoire
vive et dont on désire en faire une copie. Le type de fichier est alors déjà
connu d'Excel.
MichD
Avatar
News.aioe.org
Je ne recommande pas cette approche bien que je
n'ai pas un message d'erreur sur l'exécution de la macro.
Le fichier créé n'a pas d'extension et pour l'ouvrir
du devras utiliser la commande "ouvrir avec" et rechercher
dans la liste l'exécutable Excel.exe. Au moment d'ouvrir,
tu auras probablement un message sur la sécurité du fichier.
Je n'ai pas de fait un test explicite pour savoir si le format de
fichier par défaut dans les options d'Excel - Enregistrement
(choix du type de fichier par défaut) à un effet sur le format
qu'Excel utilisera.
Tu es mieux avec l'autre message sur le sujet.
MichD
Avatar
martine.leport
Le mardi 17 janvier 2017 17:39:32 UTC+1, News.aioe.org a écrit :
Bonjour,
Si tu utilises la méthode "SaveAs", tu dois obligatoirement
utiliser le paramètre FileFormat.
La ligne de commande devient :
ActiveWorkbook.SaveAs Filename:=nomfichier, FileFormat:R
52 c'est la valeur numérique de cette constante :
xlOpenXMLWorkbookMacroEnabled
Tu peux regarder dans l'aide-VBA d'Excel ou tu peux déclarer une var iable
comme suit :
Immédiatement après avoir écrit le symbole "=", tu as un e liste déroulante
qui apparait et tu peux choisir le type de format que tu désires.
Évidemment, cela est placé au début de la procédure.
Dim X As XlFileFormat
X = xlOpenXMLWorkbookMacroEnabled
La problématique avec SaveCopyAs, elle n'a pas de paramètre "Fi leFormat". On
utilise habituellement dans un fichier déjà enregistré qui est en mémoire
vive et dont on désire en faire une copie. Le type de fichier est al ors déjà
connu d'Excel.
MichD

Merci beaucoup avec l'ajout de FileFormat:R cela fonctionne très bien
Top
Caroual