OVH Cloud OVH Cloud

Redéfinir la fonction Enregistrer

2 réponses
Avatar
Maxime
Bonjour,

sur Excel 97, j'ai une macro qui me permet de lancer une autre macro
'Enregistrer' dès que j'appuie sur l'icône Enregistrer dans la barre
d'outils.
Voici le code

Dim Bar As CommandBar, Ctrl As CommandBarControl, S$

' on redéfinit la fonction Enregistrer (id=3)
For Each Bar In Application.CommandBars
For Each Ctrl In Bar.Controls
If Ctrl.Id = 3 Then
Ctrl.OnAction = "Enregistrer"
End If
Next Ctrl
Next Bar

Le problème, c'est que je voudrai avoir le même comportement si je vais dans
le menu 'Fichier -> Enregistrer'. Quelqu'un saurait ce qu'il faut que je
rajoute à mon code pour que cela puisse fonctionner.

Merci beaucoup

2 réponses

Avatar
Denis Michon
Bonjour Maxime,


Tu désires quelque chose dans le genre :

À mettre dans un module Standard



'-------------------
Sub ModifierActionEnregistrer()

With Application.CommandBars
.Item(1).FindControl(ID:=3, Recursive:=True).OnAction = "Enregistrer"
.Item("Standard").FindControl(ID:=3, Recursive:=True).OnAction = "Enregistrer"
End With

End Sub
'---------------
Sub Enregistrer()
MsgBox "Bonjour"
End Sub
'--------------

Pour revenir à la normale :

Sub Normale()
With Application.CommandBars
.Item(1).FindControl(ID:=3, Recursive:=True).OnAction = ""
.Item("Standard").FindControl(ID:=3, Recursive:=True).OnAction = ""
End With
End sub



Salutations!



"Maxime" a écrit dans le message de news:bpdb99$66c$
Bonjour,

sur Excel 97, j'ai une macro qui me permet de lancer une autre macro
'Enregistrer' dès que j'appuie sur l'icône Enregistrer dans la barre
d'outils.
Voici le code

Dim Bar As CommandBar, Ctrl As CommandBarControl, S$

' on redéfinit la fonction Enregistrer (id=3)
For Each Bar In Application.CommandBars
For Each Ctrl In Bar.Controls
If Ctrl.Id = 3 Then
Ctrl.OnAction = "Enregistrer"
End If
Next Ctrl
Next Bar

Le problème, c'est que je voudrai avoir le même comportement si je vais dans
le menu 'Fichier -> Enregistrer'. Quelqu'un saurait ce qu'il faut que je
rajoute à mon code pour que cela puisse fonctionner.

Merci beaucoup
Avatar
Maxime
super, ça marche, merci beaucoup



"Denis Michon" a écrit dans le message de
news:YYqub.39539$
Bonjour Maxime,


Tu désires quelque chose dans le genre :

À mettre dans un module Standard



'-------------------
Sub ModifierActionEnregistrer()

With Application.CommandBars
.Item(1).FindControl(ID:=3, Recursive:=True).OnAction = "Enregistrer"
.Item("Standard").FindControl(ID:=3, Recursive:=True).OnAction "Enregistrer"
End With

End Sub
'---------------
Sub Enregistrer()
MsgBox "Bonjour"
End Sub
'--------------

Pour revenir à la normale :

Sub Normale()
With Application.CommandBars
.Item(1).FindControl(ID:=3, Recursive:=True).OnAction = ""
.Item("Standard").FindControl(ID:=3, Recursive:=True).OnAction = ""
End With
End sub



Salutations!



"Maxime" a écrit dans le message de
news:bpdb99$66c$

Bonjour,

sur Excel 97, j'ai une macro qui me permet de lancer une autre macro
'Enregistrer' dès que j'appuie sur l'icône Enregistrer dans la barre
d'outils.
Voici le code

Dim Bar As CommandBar, Ctrl As CommandBarControl, S$

' on redéfinit la fonction Enregistrer (id=3)
For Each Bar In Application.CommandBars
For Each Ctrl In Bar.Controls
If Ctrl.Id = 3 Then
Ctrl.OnAction = "Enregistrer"
End If
Next Ctrl
Next Bar

Le problème, c'est que je voudrai avoir le même comportement si je vais
dans

le menu 'Fichier -> Enregistrer'. Quelqu'un saurait ce qu'il faut que je
rajoute à mon code pour que cela puisse fonctionner.

Merci beaucoup