XL 2016 Enregistrer sous prenant en charge les macro

  • Initiateur de la discussion Initiateur de la discussion dreamy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dreamy

XLDnaute Nouveau
Bonjour à tous,

Pour l'un de mes fichiers, j'ai une macro pour ouvrir la fenêtre " enregistrer sous " avec le nom du fichier (en fonction de la cellule R2) la date du jour et le chemin ou enregistrer mon fichier (j'ai 2 macro pour 2 chemin différent)

Tout fonctionne parfaitement jusque la, sauf que ... je n'arrive pas à faire en sorte que la fenêtre "enregistrer sous" indique directement le type de fichier à enregistrer : Classeur Excel prenant en charge les macros.
(Les utilisateurs oublient systématiquement du coup de la modifié, et le reste du fichier ne peut pas fonctionner car il y a d'autre macro pour le faire fonctionner)

J'ai tenté plein de proposition que j'ai trouvé sur les forums, pas moyen. Je précise bien l'extension que je souhaite etc ...

Auriez vous une solution pour m'aider ou me dire si j'ai une incohérence dans ma macro qui empêche de l'enregistrer correctement ?

Voici la macro :

Sub SAVE_Client()

Dim chemin As String, fichier As String, extension As String

chemin = "V:\PARC CLIENT\"
extension = ".xlsm"
Date_F = Format(Date, " ddmmyy")
fichier = "SIMUL - " & Sheets("Récap").Range("R2") & " - " & Date_F & extension

ChDrive "V:"
ChDir chemin

With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = fichier
.Show
End With

End Sub

J'ai également essayé de mettre & ".xlms"

Je vous mets un fichier avec les 2 macros.

Merci par avance de votre aide,
 

Pièces jointes

Bonjour herve62🙂,@dreamy 🙂,

à tester
VB:
Sub SAVE_Client()
   Dim chemin As String, fichier As String, extension As String

   chemin = "V:\PARC CLIENT\"
   extension = ".xlsm"
   Date_F = Format(Date, " ddmmyy")
   fichier = "SIMUL - " & Sheets("Récap").Range("R2") & " - " & Date_F & extension

   With ActiveWorkbook
      .SaveAs Filename:=chemin & fichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
   End With
End Sub
 
Bonjour Messieurs et merci pour vos retours,

J'ai testé vos solutions mais elles ne fonctionnent pas comme je souhaiterais :

Solution d'Herve62 : il ne prend plus en compte le nom de mon fichier en R2 dans la macro SAVE_Propo()

Solution de Cathodique : la macro fonctionne, mais il enregistre directement dans le fichier, mais une fois dans Parc Client, l'utilisateur doit encore choisir le fichier avec le nom du client, donc la fenêtre "enregistrer sous" doit impérativement s'ouvrir. J'ai modifier la macro en mettant FileDialog au lieu d'ActiveWorkbook mais du coup le nom de mon fichier n'apparait plus.

J'ai essayé de bidouillé, je ne trouve pas dans les 2 cas 😕
une idée ???
 
Bonsoir,

un autre essai
VB:
Sub SAVE_Client()
    Dim Chemin As String, Fichier As String, extension As String
    Chemin = "V:\PARC CLIENT\"
    extension = ".xlsm"
    Date_F = Format(Date, " ddmmyy")
    Fichier = "SIMUL - " & Sheets("Récap").Range("R2") & " - " & Date_F & extension
Fichier = Application.GetSaveAsFilename(Fichier, "Fichiers Excel (*.xlsm), *.xlsm")
    ActiveWorkbook.SaveAs Fichier
End Sub
Bonne soirée.
 
Bonsoir
? normalement le nom de fichier dans R2 était pris en compte :
fichier = "SIMUL-" & Sheets("Récap").Range("R2") & "-" & Date_F & ".xlsm"
par contre MS reconnait que le "enregistrer sous" n'a pas été perfectionné
essaye cette autre méthode , chez moi cela fonctionne , ensuite à toi d'adapter chemin , variable etc ...
 

Pièces jointes

Yups @cathodique
On se croise pendant que je rédigeais , donc pas vu ton code et ...... exactement la même solution !!!
juste coïncidence pure
Donc là à 2 , je pense SUR que cela fonctionne
Je viens même de m'apercevoir que ANNULER entraine une erreur , le remède >
VB:
fichier = Application.GetSaveAsFilename(fic_enr, "Fichiers Excel (*.xlsm), *.xlsm")
    If fichier = fic_enr Then ActiveWorkbook.SaveAs fichier Else Exit Sub
 
Dernière édition:
Yups @cathodique
On se croise pendant que je rédigeais , donc pas vu ton code et ...... exactement la même solution !!!
juste coïncidence pure
Donc là à 2 , je pense SUR que cela fonctionne
Je viens même de m'apercevoir que ANNULER entraine une erreur , le remède >
VB:
fichier = Application.GetSaveAsFilename(fic_enr, "Fichiers Excel (*.xlsm), *.xlsm")
    If fichier = fic_enr Then ActiveWorkbook.SaveAs fichier Else Exit Sub
Bonjour Herve2, Dreamy,
😕😕😳😳, je n'avais ni pensé ni testé la touche Annuler.
Merci de ma part.

@herve62 : le petit gars ne veut toujours pas participer.

Bonne journée.
 
Bonjour Messieurs,

De nouveau merci de votre retour,
Je dois avoir un truc qui bloque car chez moi la macro fonctionne a moitié 🙁.
Je n'ai pas de bug, le chemin est bon, le nom s'affiche ... jusque la c'est parfait je fais "enregistrer" dans le dossier .... mais il n'y a rien, aucun fichier, pourtant aucun message d'erreur (et le nom du fichier en haut de ma page ne se modifie pas non plus d'ailleurs)


Voici le macro que j'ai mis d'après vos conseils ...

Sub SAVE_Client()

Dim Chemin As String, Fichier As String, extension As String
Chemin = "V:\PARC CLIENT\"
extension = ".xlsm"
Date_F = Format(Date, " ddmmyy")
Fichier = "SIMUL - " & Sheets("Récap").Range("R2") & " - " & Date_F & extension

ChDrive "V:"
ChDir Chemin

Fichier = Application.GetSaveAsFilename(Fichier, "Fichiers Excel (*.xlsm), *.xlsm")
If Fichier = fic_enr Then ActiveWorkbook.SaveAs Fichier Else Exit Sub
ActiveWorkbook.SaveAs Fichier
End Sub



Si j'enlève : If Fichier = fic_enr Then ActiveWorkbook.SaveAs Fichier Else Exit Sub
Ou si je le place en dessous de : ActiveWorkbook.SaveAs Fichier
j'ai un message d'erreur pour le format XLSM (screen en PJ)

C'est un grand mystère pour moi surtout si pour vous 2 tout fonctionne. Mon fichier est un Modèle de document prenant en charge les macro, est-ce que cela pourrait créer un conflit avec la macro ?
 

Pièces jointes

  • upload_2019-2-15_12-18-38.png
    upload_2019-2-15_12-18-38.png
    8.3 KB · Affichages: 22
  • Screenshot_2.jpg
    Screenshot_2.jpg
    27.3 KB · Affichages: 20
  • Screenshot_3.jpg
    Screenshot_3.jpg
    31.2 KB · Affichages: 22
Bonjour Messieurs,

De nouveau merci de votre retour,
Je dois avoir un truc qui bloque car chez moi la macro fonctionne a moitié 🙁.
Je n'ai pas de bug, le chemin est bon, le nom s'affiche ... jusque la c'est parfait je fais "enregistrer" dans le dossier .... mais il n'y a rien, aucun fichier, pourtant aucun message d'erreur (et le nom du fichier en haut de ma page ne se modifie pas non plus d'ailleurs)


Voici le macro que j'ai mis d'après vos conseils ...

Sub SAVE_Client()

Dim Chemin As String, Fichier As String, extension As String
Chemin = "V:\PARC CLIENT\"
extension = ".xlsm"
Date_F = Format(Date, " ddmmyy")
Fichier = "SIMUL - " & Sheets("Récap").Range("R2") & " - " & Date_F & extension

ChDrive "V:"
ChDir Chemin

Fichier = Application.GetSaveAsFilename(Fichier, "Fichiers Excel (*.xlsm), *.xlsm")
If Fichier = fic_enr Then ActiveWorkbook.SaveAs Fichier Else Exit Sub
ActiveWorkbook.SaveAs Fichier
End Sub



Si j'enlève : If Fichier = fic_enr Then ActiveWorkbook.SaveAs Fichier Else Exit Sub
Ou si je le place en dessous de : ActiveWorkbook.SaveAs Fichier
j'ai un message d'erreur pour le format XLSM (screen en PJ)

C'est un grand mystère pour moi surtout si pour vous 2 tout fonctionne. Mon fichier est un Modèle de document prenant en charge les macro, est-ce que cela pourrait créer un conflit avec la macro ?
Bonjour,
Si on te propose des procédures et que tu ne t'en sers pas.
Je ne vois pas comment t'aider plus que ça.
Mais dis-nous à quoi servent ces 2 lignes
ChDrive "V:"
ChDir Chemin

🙄🙄 je pense à t'embêter pour la suite du code.....
 
Dernière édition:
Bonjour , salut cathodique
Je suppute l'idée de sauvegarde via un serveur , non ? si oui là ce n'est plus pareil le chemin ne s'écrit plus pareil
Je faisais comme ça : "\\SRVPROD\commun_mairie\" ..etc pour affecter le chemin de sauvegarde des fichiers utilisés par tout le personnel
sur le serveur il faut écrire le nom et pas "V:" , mais plutôt "\\Serveur-2012\ ...etc"
@dreamy : a toi de vérifier
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 CSV en EXCEL
Réponses
1
Affichages
97
Réponses
9
Affichages
580
Réponses
13
Affichages
897
Réponses
5
Affichages
477
  • Question Question
Microsoft 365 Erreur de macro
Réponses
4
Affichages
743
Retour