XL 2016 Enregistrer sous prenant en charge les macro

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,
 

Fichiers joints

cathodique

XLDnaute Accro
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
 

dreamy

XLDnaute Nouveau
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 :confused:
une idée ???
 

cathodique

XLDnaute Accro
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.
 

herve62

XLDnaute Barbatruc
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 ...
 

Fichiers joints

herve62

XLDnaute Barbatruc
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:

cathodique

XLDnaute Accro
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,
:confused::confused::oops::oops:, 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.
 

dreamy

XLDnaute Nouveau
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 ?
 

Fichiers joints

cathodique

XLDnaute Accro
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

:rolleyes::rolleyes: je pense à t'embêter pour la suite du code.....
 
Dernière édition:

herve62

XLDnaute Barbatruc
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
 

Haut Bas