Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hervé
Salut Kyosho, Tu peux utiliser la propriété Tag (ou Parameter) des boutons de barre de commande et ensuite faire un Select Case dans la macro appelée pour définir l'action à faire. Tu as aussi la possibilité de passer des arguments à la macro mais je ne trouve pas la chose très souple. Exemple avec une barre de menu et 2 boutons :
Sub Menu() Dim Barre As CommandBar Dim Ctrl As CommandBarButton Dim Chaine1 As String Dim Chaine2 As String
On Error Resume Next Application.CommandBars("Test").Delete On Error GoTo 0
Set Barre = Application.CommandBars.Add("Test", msoBarTop) With Barre .Visible = True Set Ctrl = .Controls.Add(msoControlButton) With Ctrl .Tag = "Bouton1" .Caption = "Bouton1" .OnAction = "MaMacro" .TooltipText = "Bouton 1" .FaceId = 462 End With Set Ctrl = .Controls.Add(msoControlButton) With Ctrl .Tag = "Bouton2" .Caption = "Bouton2" .OnAction = "MaMacro" .TooltipText = "Bouton 2" .FaceId = 464 End With End With
Set Barre = Nothing Set Ctrl = Nothing End Sub
Sub MaMacro() Select Case CommandBars.ActionControl.Tag Case "Bouton1" MsgBox "Clic sur le bouton 1 !" Case "Bouton2" MsgBox "Clic sur le bouton 2 !" End Select End Sub
Hervé.
"Kyosho" a écrit dans le message news: cuira1$e58$
Bonjour,
J'aimerai appeler une macro avec un paramètre, genre macro(1), depuis un bouton créé en VBA dans une barre d'outil.
Les boutons sont créés en fonction de paramètres sur une feuille. Donc je ne peux pas créer une fonction par bouton.
Merci d'avance
Salut Kyosho,
Tu peux utiliser la propriété Tag (ou Parameter) des boutons de barre de
commande et ensuite faire un Select Case dans la macro appelée pour définir
l'action à faire. Tu as aussi la possibilité de passer des arguments à la
macro mais je ne trouve pas la chose très souple.
Exemple avec une barre de menu et 2 boutons :
Sub Menu()
Dim Barre As CommandBar
Dim Ctrl As CommandBarButton
Dim Chaine1 As String
Dim Chaine2 As String
On Error Resume Next
Application.CommandBars("Test").Delete
On Error GoTo 0
Set Barre = Application.CommandBars.Add("Test", msoBarTop)
With Barre
.Visible = True
Set Ctrl = .Controls.Add(msoControlButton)
With Ctrl
.Tag = "Bouton1"
.Caption = "Bouton1"
.OnAction = "MaMacro"
.TooltipText = "Bouton 1"
.FaceId = 462
End With
Set Ctrl = .Controls.Add(msoControlButton)
With Ctrl
.Tag = "Bouton2"
.Caption = "Bouton2"
.OnAction = "MaMacro"
.TooltipText = "Bouton 2"
.FaceId = 464
End With
End With
Set Barre = Nothing
Set Ctrl = Nothing
End Sub
Sub MaMacro()
Select Case CommandBars.ActionControl.Tag
Case "Bouton1"
MsgBox "Clic sur le bouton 1 !"
Case "Bouton2"
MsgBox "Clic sur le bouton 2 !"
End Select
End Sub
Hervé.
"Kyosho" <kyosho@9online.fr> a écrit dans le message news:
cuira1$e58$1@aphrodite.grec.isp.9tel.net...
Bonjour,
J'aimerai appeler une macro avec un paramètre, genre macro(1), depuis un
bouton créé en VBA dans une barre d'outil.
Les boutons sont créés en fonction de paramètres sur une feuille.
Donc je ne peux pas créer une fonction par bouton.
Salut Kyosho, Tu peux utiliser la propriété Tag (ou Parameter) des boutons de barre de commande et ensuite faire un Select Case dans la macro appelée pour définir l'action à faire. Tu as aussi la possibilité de passer des arguments à la macro mais je ne trouve pas la chose très souple. Exemple avec une barre de menu et 2 boutons :
Sub Menu() Dim Barre As CommandBar Dim Ctrl As CommandBarButton Dim Chaine1 As String Dim Chaine2 As String
On Error Resume Next Application.CommandBars("Test").Delete On Error GoTo 0
Set Barre = Application.CommandBars.Add("Test", msoBarTop) With Barre .Visible = True Set Ctrl = .Controls.Add(msoControlButton) With Ctrl .Tag = "Bouton1" .Caption = "Bouton1" .OnAction = "MaMacro" .TooltipText = "Bouton 1" .FaceId = 462 End With Set Ctrl = .Controls.Add(msoControlButton) With Ctrl .Tag = "Bouton2" .Caption = "Bouton2" .OnAction = "MaMacro" .TooltipText = "Bouton 2" .FaceId = 464 End With End With
Set Barre = Nothing Set Ctrl = Nothing End Sub
Sub MaMacro() Select Case CommandBars.ActionControl.Tag Case "Bouton1" MsgBox "Clic sur le bouton 1 !" Case "Bouton2" MsgBox "Clic sur le bouton 2 !" End Select End Sub
Hervé.
"Kyosho" a écrit dans le message news: cuira1$e58$
Bonjour,
J'aimerai appeler une macro avec un paramètre, genre macro(1), depuis un bouton créé en VBA dans une barre d'outil.
Les boutons sont créés en fonction de paramètres sur une feuille. Donc je ne peux pas créer une fonction par bouton.
Merci d'avance
MichDenis
Bonjour Kyosho,
Si tes boutons sont des boutons émanant de la boîte à outils "Formulaire", tu peux nommer tes boutons de cette manière : Bouton 1 , Bouton 2 ....
Tu attaches tous tes boutons à la même macro.
Et tu peux te servir ce cette ligne de code dans ta macro pour extraire le "numéro" de ton bouton ...1 , 2 ....et t'en servir comme paramètre si c'est ce que tu désires.
MsgBox Val(Split(Application.Caller)(1))
Salutations!
"Kyosho" a écrit dans le message de news: cuira1$e58$ Bonjour,
J'aimerai appeler une macro avec un paramètre, genre macro(1), depuis un bouton créé en VBA dans une barre d'outil.
Les boutons sont créés en fonction de paramètres sur une feuille. Donc je ne peux pas créer une fonction par bouton.
Merci d'avance
Bonjour Kyosho,
Si tes boutons sont des boutons émanant de la boîte à outils "Formulaire", tu peux nommer tes boutons de cette manière :
Bouton 1 , Bouton 2 ....
Tu attaches tous tes boutons à la même macro.
Et tu peux te servir ce cette ligne de code dans ta macro pour extraire le "numéro" de ton bouton ...1 , 2 ....et t'en
servir comme paramètre si c'est ce que tu désires.
MsgBox Val(Split(Application.Caller)(1))
Salutations!
"Kyosho" <kyosho@9online.fr> a écrit dans le message de news: cuira1$e58$1@aphrodite.grec.isp.9tel.net...
Bonjour,
J'aimerai appeler une macro avec un paramètre, genre macro(1), depuis un
bouton créé en VBA dans une barre d'outil.
Les boutons sont créés en fonction de paramètres sur une feuille.
Donc je ne peux pas créer une fonction par bouton.
Si tes boutons sont des boutons émanant de la boîte à outils "Formulaire", tu peux nommer tes boutons de cette manière : Bouton 1 , Bouton 2 ....
Tu attaches tous tes boutons à la même macro.
Et tu peux te servir ce cette ligne de code dans ta macro pour extraire le "numéro" de ton bouton ...1 , 2 ....et t'en servir comme paramètre si c'est ce que tu désires.
MsgBox Val(Split(Application.Caller)(1))
Salutations!
"Kyosho" a écrit dans le message de news: cuira1$e58$ Bonjour,
J'aimerai appeler une macro avec un paramètre, genre macro(1), depuis un bouton créé en VBA dans une barre d'outil.
Les boutons sont créés en fonction de paramètres sur une feuille. Donc je ne peux pas créer une fonction par bouton.
Merci d'avance
Kyosho
Hervé wrote:
Salut Kyosho, Tu peux utiliser la propriété Tag (ou Parameter) des boutons de barre de commande et ensuite faire un Select Case dans la macro appelée pour définir l'action à faire. Tu as aussi la possibilité de passer des arguments à la macro mais je ne trouve pas la chose très souple. Exemple avec une barre de menu et 2 boutons :
Sub Menu() Dim Barre As CommandBar Dim Ctrl As CommandBarButton Dim Chaine1 As String Dim Chaine2 As String
On Error Resume Next Application.CommandBars("Test").Delete On Error GoTo 0
Set Barre = Application.CommandBars.Add("Test", msoBarTop) With Barre .Visible = True Set Ctrl = .Controls.Add(msoControlButton) With Ctrl .Tag = "Bouton1" .Caption = "Bouton1" .OnAction = "MaMacro" .TooltipText = "Bouton 1" .FaceId = 462 End With Set Ctrl = .Controls.Add(msoControlButton) With Ctrl .Tag = "Bouton2" .Caption = "Bouton2" .OnAction = "MaMacro" .TooltipText = "Bouton 2" .FaceId = 464 End With End With
Set Barre = Nothing Set Ctrl = Nothing End Sub
Sub MaMacro() Select Case CommandBars.ActionControl.Tag Case "Bouton1" MsgBox "Clic sur le bouton 1 !" Case "Bouton2" MsgBox "Clic sur le bouton 2 !" End Select End Sub
Hervé.
"Kyosho" a écrit dans le message news: cuira1$e58$
Bonjour,
J'aimerai appeler une macro avec un paramètre, genre macro(1), depuis un bouton créé en VBA dans une barre d'outil.
Les boutons sont créés en fonction de paramètres sur une feuille. Donc je ne peux pas créer une fonction par bouton.
Merci d'avance
Merci Hervé ça marche impecable
Hervé wrote:
Salut Kyosho,
Tu peux utiliser la propriété Tag (ou Parameter) des boutons de barre de
commande et ensuite faire un Select Case dans la macro appelée pour définir
l'action à faire. Tu as aussi la possibilité de passer des arguments à la
macro mais je ne trouve pas la chose très souple.
Exemple avec une barre de menu et 2 boutons :
Sub Menu()
Dim Barre As CommandBar
Dim Ctrl As CommandBarButton
Dim Chaine1 As String
Dim Chaine2 As String
On Error Resume Next
Application.CommandBars("Test").Delete
On Error GoTo 0
Set Barre = Application.CommandBars.Add("Test", msoBarTop)
With Barre
.Visible = True
Set Ctrl = .Controls.Add(msoControlButton)
With Ctrl
.Tag = "Bouton1"
.Caption = "Bouton1"
.OnAction = "MaMacro"
.TooltipText = "Bouton 1"
.FaceId = 462
End With
Set Ctrl = .Controls.Add(msoControlButton)
With Ctrl
.Tag = "Bouton2"
.Caption = "Bouton2"
.OnAction = "MaMacro"
.TooltipText = "Bouton 2"
.FaceId = 464
End With
End With
Set Barre = Nothing
Set Ctrl = Nothing
End Sub
Sub MaMacro()
Select Case CommandBars.ActionControl.Tag
Case "Bouton1"
MsgBox "Clic sur le bouton 1 !"
Case "Bouton2"
MsgBox "Clic sur le bouton 2 !"
End Select
End Sub
Hervé.
"Kyosho" <kyosho@9online.fr> a écrit dans le message news:
cuira1$e58$1@aphrodite.grec.isp.9tel.net...
Bonjour,
J'aimerai appeler une macro avec un paramètre, genre macro(1), depuis un
bouton créé en VBA dans une barre d'outil.
Les boutons sont créés en fonction de paramètres sur une feuille.
Donc je ne peux pas créer une fonction par bouton.
Salut Kyosho, Tu peux utiliser la propriété Tag (ou Parameter) des boutons de barre de commande et ensuite faire un Select Case dans la macro appelée pour définir l'action à faire. Tu as aussi la possibilité de passer des arguments à la macro mais je ne trouve pas la chose très souple. Exemple avec une barre de menu et 2 boutons :
Sub Menu() Dim Barre As CommandBar Dim Ctrl As CommandBarButton Dim Chaine1 As String Dim Chaine2 As String
On Error Resume Next Application.CommandBars("Test").Delete On Error GoTo 0
Set Barre = Application.CommandBars.Add("Test", msoBarTop) With Barre .Visible = True Set Ctrl = .Controls.Add(msoControlButton) With Ctrl .Tag = "Bouton1" .Caption = "Bouton1" .OnAction = "MaMacro" .TooltipText = "Bouton 1" .FaceId = 462 End With Set Ctrl = .Controls.Add(msoControlButton) With Ctrl .Tag = "Bouton2" .Caption = "Bouton2" .OnAction = "MaMacro" .TooltipText = "Bouton 2" .FaceId = 464 End With End With
Set Barre = Nothing Set Ctrl = Nothing End Sub
Sub MaMacro() Select Case CommandBars.ActionControl.Tag Case "Bouton1" MsgBox "Clic sur le bouton 1 !" Case "Bouton2" MsgBox "Clic sur le bouton 2 !" End Select End Sub
Hervé.
"Kyosho" a écrit dans le message news: cuira1$e58$
Bonjour,
J'aimerai appeler une macro avec un paramètre, genre macro(1), depuis un bouton créé en VBA dans une barre d'outil.
Les boutons sont créés en fonction de paramètres sur une feuille. Donc je ne peux pas créer une fonction par bouton.