Macro lancé via un clic sur le bouton save

[Résolu/Fermé]
Signaler
Messages postés
30
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
21 octobre 2013
-
Messages postés
30
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
21 octobre 2013
-
hello la communauté, je dois dire que grâce à ce forum, je suis de plus en plus performant en vb notamment ^^.
Petite question @ tous mais surtout @ marin@ qui me répond toujours :

En fait voila , je voudrais lancé une macro via un clic sur le bouton save de la feuille excel, je sais que je peux récupérer la position via GetMousePostion, et un clic via worksheet_beforeleftclick() mais quelqu'un pourrait-il m'aider à mettre sa en forme.



6 réponses

Messages postés
8539
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 juillet 2021
1 689
Bonjour,

Pour « lancé une macro via un clic sur le bouton save de la feuille excel » il faut utiliser l'évènement BeforeSave dans le module ThisWorkBook :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Call MonModule.MaMacro(MesArguments)
End Sub
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
8539
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 juillet 2021
1 689
Re,

« cela ne fonctionne pas » Qu'est-ce qui ne fonctionne pas ? Y-a-t'il un message d'erreur ? Lequel ?

Pour le message, comme l'évènement se produit juste avant la sauvegarde cela donne :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  MsgBox "Vous allez sauvegarder"
End Sub

Cordialement
Patrice
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
30
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
21 octobre 2013
3
salut patrice33740, et merci pour ta réponse malheuresement je crois que je me suis mal exprimé j'ai testé d'abord ta réponse et cela ne fonctionne pas.

Pour simplifié mon probléme, je veux que lorsque je clique sur la petit disquette pour sauvegarder sa m'affiche par exemple un petit msgbox " vous venez de sauvegardez".

Merci.
Messages postés
30
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
21 octobre 2013
3
cool c'est ce que je cherchais, merci pour ta réponse cela fonctionne correctement maintenant une derniere question car à partir de mon classeur j'ouvre un autre classeur et je veux que lorsque l'utilisateur modifie le classeur ouvert cela enregistre mais je veux programmer cela à partir de mon classeur principal, cela est-il faisable grâce à :

Private Sub INSERTVBCODE(WorkbookToUpdate As Workbook):

on a ensuite quelque chose comme sa :
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Dim LineNum As Long

'Set VBProj = ActiveWorkbook.VBProject
Set VBProj = WorkbookToUpdate.VBProject
'Set VBComp = VBProj.VBComponents("Module1")
Set VBComp = VBProj.VBComponents("ThisWorkbook")
Set CodeMod = VBComp.CodeModule

With CodeMod
LineNum = .CountOfLines + 1
.InsertLines LineNum, "Option Explicit"
LineNum = LineNum + 1
.InsertLines LineNum, "Private Sub Workbook_BeforeClose(Cancel As Boolean)"
LineNum = LineNum + 1

.... etc
Messages postés
8539
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 juillet 2021
1 689
« je veux que lorsque l'utilisateur modifie le classeur ouvert ... »
Chaque fois qu'une cellule change ???
Messages postés
30
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
21 octobre 2013
3
ah je vien de comprendre ton message, chaque fois qu'une cellule change tu fais une modif, si c'est possible, je veux bien savoir comment faire, quelques indications ne seront pas de refus !!
Messages postés
30
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
21 octobre 2013
3
Non en fait voici le schéma de fonctionnement de ma macro:


à partir d'un form de workbook1 je peux ouvrir plusieurs workbook, disons qu'on a ouvert le workbook2, et à l'interieur de ce dernier (le workbook 2), je fais quelques modifications, et bien ce que je voudrais c'est :

que dans le form du workbook 1 (qui contient un bouton save avec une fonction ), lorsque je sauvegarde ou appuie sur le bouton save ou saveas, cela fasse appel à ma fonction de sauvegarde.

j'espere avoir été clair cette fois-ci ^^, car il est vrai que mon premier post n'était pas l'un des meilleurs lol.


En tout cas ta premiére réponse m'a beaucoup aidé.