Macro lancé via un clic sur le bouton save

Résolu/Fermé
momouiz Messages postés 30 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 21 octobre 2013 - 1 juil. 2013 à 09:53
momouiz Messages postés 30 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 21 octobre 2013 - 1 juil. 2013 à 16:04
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.



A voir également:

6 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
1 juil. 2013 à 10:33
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié par Patrice33740 le 1/07/2013 à 11:53
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
momouiz Messages postés 30 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 21 octobre 2013 3
1 juil. 2013 à 11:09
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.
0
momouiz Messages postés 30 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 21 octobre 2013 3
1 juil. 2013 à 12:01
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
1 juil. 2013 à 12:19
« je veux que lorsque l'utilisateur modifie le classeur ouvert ... »
Chaque fois qu'une cellule change ???
0
momouiz Messages postés 30 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 21 octobre 2013 3
1 juil. 2013 à 16:04
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 !!
0
momouiz Messages postés 30 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 21 octobre 2013 3
1 juil. 2013 à 14:02
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é.
0