Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Si clique sur Enregisrer alors ... VBA

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 !

petedesky

XLDnaute Nouveau
Bonjour à tous,

Je cherche comment écrire, et surtout où mettre la fonction suivante en VBA :

Littéralement : Si quelqu'un clique sur le bouton "Enregistrer" alors, si le nom du fichier actif est égal à "MODELE" la fenêtre "Enregistrer sous" s'ouvre, sinon j'enregistre sans contrainte.

Voila le code que j'ai écrit dans ThisWorkbook:


-------------
Private Sub Workbook_Open()

If ActiveWorkbook.Save = True And ActiveWorkbook.Name = "MODELE.xlsm" Then

Application.Dialogs(xlDialogSaveAs).Show

Else

Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True

End If

End Sub

--------------

Mais ça ne réagit pas comme je le souhaite.

J'ai essayé de le mettre dans ma Feuille 1 et c'est pareil.

Si quelqu'un a une idée 🙂)

Merci et bonsoir à tous
 
Re : Si clique sur Enregisrer alors ... VBA

Bonsoir petedesky, vgendron, le Forum,

@ petedesky,

Tu dis que ça ne fonctionne pas comme tu voudrais mais tu ne dis pas comment tu voudrais que ça fonctionne?

A +

Cordialement.
 
Re : Si clique sur Enregisrer alors ... VBA

Salut,

Merci pour ce tuyau, je viens d'appliquer ça et j'ai maintenant un message :

"Erreur Compilation. La déclaration de la procédure ne correspond pas à la description de lévènement ou de la procédure de même nom"


Voila mon code dans ThisWorkbook
--------------------
Private Sub workbook_BeforeSave()

If ActiveWorkbook.Save = True And ActiveWorkbook.Name = "FORMULAIRE DE DEVIS MATIERES ET CREATION D'ARTICLE V2.xlsm" Then

Application.Dialogs(xlDialogSaveAs).Show

Else

Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True

End If

End Sub
-------------

En tout cas j'avance. Merci quand même 😉
 
Re : Si clique sur Enregisrer alors ... VBA

Bonsoir Papou-net

@ Papou-net

Effectivement, en fait je ne sais pas si ça sauve quand même le fichier ou si ça ne fait rien.

En tout cas depuis que je suis passé en Worbook_Before Save j'ai le message d'erreur expliqué dans ma réponse juste au dessus.
 
Re : Si clique sur Enregisrer alors ... VBA

Re
Hello Papou


Code:
Private Sub workbook_BeforeSave()
'à priori. si tu arrives la. c'est que la condition "appuie sur le bouton" est vraie..
'donc pas besoin du activeworkbook.save (qui doit etre la source du message d'erreur??)
If ActiveWorkbook.Name = "FORMULAIRE DE DEVIS MATIERES ET CREATION D'ARTICLE V2.xlsm" Then

Application.Dialogs(xlDialogSaveAs).Show

Else

Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True

End If

End Sub
 
Re : Si clique sur Enregisrer alors ... VBA

Nope toujours pas, j'ai toujours le message:
"Erreur Compilation. La déclaration de la procédure ne correspond pas à la description de l'évènement ou de la procédure de même nom"

J'ai l'impression que VBA attend quelque chose entre les () du BeforeSave

Merci pour ta patience.
 
Re : Si clique sur Enregisrer alors ... VBA

Bon j'ai trouvé, grâce à votre aide et des explications sur le BeforeSave

Voici mon code au final :

--------
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


If ActiveWorkbook.Name = "FORMULAIRE DE DEVIS MATIERES ET CREATION D'ARTICLE V2.xlsm" Then

MsgBox ("Merci de ne pas écraser ce formulaire modèle, Enregistrez sous un autre nom s'il vous plait")

Application.Dialogs(xlDialogSaveAs).Show

Else

Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True

End If

End Sub

------

Merci à tous
 
- 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

Réponses
1
Affichages
930
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…