Enregistrer un modèle .xtlm ... sans utiliser le "BeforeSave"

Résolu
Wilhelm_Hort Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
Wilhelm_Hort Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -
Mouais ... rien qu'à relire mon titre, ça donne mal au crâne tellement c'est incompréhensible ^^

Bonjour à la communauté CCM ! La colle du jour est :

- pour rédiger des rapports professionnels, j'utilise un modèle en format .xtlm, qui, lorsqu'on le lance, ouvre un autre fichier pour piocher des données, blablabla ... d'où la nécessité d'avoir un template utilisant des macros
- ce modèle peut être lancé tant directement par double-clic, ou via un autre classeur (jusque là, logique)
- je travaille sur la possibilité, lorsqu'on enregistre le fichier crée d'après le dit-modèle, que le nom du fichier soit repris en fonction de la date (format yyymmdd), et là encore, je tiens le bon bout, avec un format .xlsx

Le problème maintenant : c'est le formatage final du dit fichier enregistré. Lorsque je modifie la macro de mon modèle, sur la fonction BeforeSave, et que je souhaite enregistrer les modifications, il me lance toute la procédure ... et ça, c'est pas glop ...

Comment pourrais-je juste enregistrer les macros de mon modèle sans les lancer par la même occasion ?

Voilà où j'en suis :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

'Récupération de la date du rapport'

Dim daterapport As Date
Dim cheminrapport As Variant
Dim nomrapport As Variant
Sheets("Rapport_quotidien").Activate
daterapport = Range("C8").Value
nomrapport = Format(daterapport, "yyyymmdd") & ".xlsx"

'Détermination du chemin d'enregistrement'

cheminrapport = "C:\Users\xxxxx\Desktop\Rapports journaliers\"

'Enregistrement du fichier'
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs cheminrapport & nomrapport
Application.DisplayAlerts = True


End Sub


Pour info, je tourne sur Excel 2010
A voir également:

2 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Changer l'extension ne suffit pas, il faut préciser le format dans le SaveAs
et désactiver les événements pendant le SaveAs
Cordialement
Patrice
0
Wilhelm_Hort Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Justement, je voulais faire un ActiveWorkbook.Save as "nom du fichier", Fileformat:=xlWorkbookDefault ... mais je ne peux pas enregistrer vu que sinon, il me le prend pour le template et non le fichier qui en est ouvert
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Re,

Essaies :
  'Enregistrement du fichier
  If ThisWorkbook.Path = "" Then
    Cancel = True
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    ActiveWorkbook.SaveAs cheminrapport & nomrapport, FileFormat:=xlWorkbookDefault
    Application.EnableEvents = True
    Application.DisplayAlerts = True
  End If


Edit : lire xlWorkbookDefault (au lieu de xlWorkbookNormal )
Cordialement
Patrice
0
Wilhelm_Hort Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Pas bête du tout !!! J'avais pas pensé au fait que le nouveau fichier crée sur la base du template n'avait pas de chemin !

Superbe, merci pour le tuyau, je vérifie de suite
0
Wilhelm_Hort Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Eh ben c'est bon ! Encore merci !!!
0