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

Résolu/Fermé
Wilhelm_Hort Messages postés 17 Date d'inscription dimanche 28 juin 2015 Statut Membre Dernière intervention 31 août 2015 - 16 juil. 2015 à 20:59
Wilhelm_Hort Messages postés 17 Date d'inscription dimanche 28 juin 2015 Statut Membre Dernière intervention 31 août 2015 - 17 juil. 2015 à 00:00
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 dimanche 13 juin 2010 Statut Membre Dernière intervention 15 mars 2025 1 779
Modifié par Patrice33740 le 16/07/2015 à 21:22
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 dimanche 28 juin 2015 Statut Membre Dernière intervention 31 août 2015
16 juil. 2015 à 21:36
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 dimanche 13 juin 2010 Statut Membre Dernière intervention 15 mars 2025 1 779
Modifié par Patrice33740 le 16/07/2015 à 22:34
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 dimanche 28 juin 2015 Statut Membre Dernière intervention 31 août 2015
16 juil. 2015 à 23:57
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 dimanche 28 juin 2015 Statut Membre Dernière intervention 31 août 2015
17 juil. 2015 à 00:00
Eh ben c'est bon ! Encore merci !!!
0