Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Barre d'outils

8 réponses
Avatar
Thierry
Bonjour,

J'ai une barre d'outils avec plusieurs boutons de la forme :

Set bouton = CommandBars("Cra").Controls.Add(Type:=msoControlButton)

bouton.Style = msoButtonIconAndCaption
bouton.TooltipText = "Création de la feuille de compte rendu d'activité
mensuelle"
bouton.FaceId = 121
bouton.OnAction = "CreCRA"
bouton.Caption = "Cré-CRA"
bouton.Tag = "btn1"
bouton.State = msoButtonUp

J'aurais voulu savoir (sachant que ce code se trouve dans un module dans
(Sub auto_open()) :

- S'il est possible de n'afficher lorsque l'on se trouve sur une
feuille, que les boutons qui la concerne ? et si oui comment ?

- de proposer une liste déroulante comme bouton avec en fonction du
choix la bonne macro à lancer ?

- De connaître dans la macro, lorsque l'on execute la macro lancée
du bouton, quel bouton l'a lancée ?

Merci

--
Ne pas répondre à l'adresse anti-spam.




---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 07:42:45
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com

8 réponses

Avatar
FFO
Salut Thierry

Pour l'affichage des boutons en fonction de la feuille tu peux mettre dans
le VBA de chaque feuille ce code :

Private Sub Worksheet_Activate()
For Each bar In Application.CommandBars
If Not bar.BuiltIn And bar.Visible = True Then bar.Visible = False
Next
Application.CommandBars("Nom du bouton 1").Visible = True
Application.CommandBars("Nom du bouton 2").Visible = True
Etc ...
End Sub

Ce code aura pour effet lorsque tu activeras la feuille de désactiver tous
les boutons et de réactiver les boutons de la feuille

Pour bénéficier de cette particularité à l'ouverture du document tu peux
mettre en fin de ton code Sub auto_open le changement de feuille active afin
de provoquer le code d'une feuille pour n'avoir que les boutons approprié :
Sheets("Feuil2").Select
Sheets("Feuil1").Select
Par exemple

Voilà déjà une première réponse à tes demandes


Bonjour,

J'ai une barre d'outils avec plusieurs boutons de la forme :

Set bouton = CommandBars("Cra").Controls.Add(Type:=msoControlButton)

bouton.Style = msoButtonIconAndCaption
bouton.TooltipText = "Création de la feuille de compte rendu d'activité
mensuelle"
bouton.FaceId = 121
bouton.OnAction = "CreCRA"
bouton.Caption = "Cré-CRA"
bouton.Tag = "btn1"
bouton.State = msoButtonUp

J'aurais voulu savoir (sachant que ce code se trouve dans un module dans
(Sub auto_open()) :

- S'il est possible de n'afficher lorsque l'on se trouve sur une
feuille, que les boutons qui la concerne ? et si oui comment ?

- de proposer une liste déroulante comme bouton avec en fonction du
choix la bonne macro à lancer ?

- De connaître dans la macro, lorsque l'on execute la macro lancée
du bouton, quel bouton l'a lancée ?

Merci

--
Ne pas répondre à l'adresse anti-spam.




---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 07:42:45
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com






Avatar
FFO
ReBonjour Thierry

Pour lancer une macro en fonction d'un choix d'une liste déroulante
2 solutions
Supposant que la liste déroulante soit dans la cellule A1
soit au changement du choix de la liste avec ce code à mettre dans le VBA de
la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
Run (Range("A1"))
End If
End Sub

Inconvénient si le choix présent est celui que l'on souhaite activer
nécessité de réaliser un autre choix pour revenir dessus afin de déclencher
le code

Soit par double click sur le choix réalisé avec ce code :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
If Target.Address = Range("A1").Address Then
Run (Range("A1"))
End If
End Sub

Inconvénient double click nécessaire sur le choix réalisé
Mais si le choix souhaité est celui affiché aucune nécéssité de changer
comme précédemment un double click suffit

Espérant avoir répondu à ton attente pour ta 2° demande


Bonjour,

J'ai une barre d'outils avec plusieurs boutons de la forme :

Set bouton = CommandBars("Cra").Controls.Add(Type:=msoControlButton)

bouton.Style = msoButtonIconAndCaption
bouton.TooltipText = "Création de la feuille de compte rendu d'activité
mensuelle"
bouton.FaceId = 121
bouton.OnAction = "CreCRA"
bouton.Caption = "Cré-CRA"
bouton.Tag = "btn1"
bouton.State = msoButtonUp

J'aurais voulu savoir (sachant que ce code se trouve dans un module dans
(Sub auto_open()) :

- S'il est possible de n'afficher lorsque l'on se trouve sur une
feuille, que les boutons qui la concerne ? et si oui comment ?

- de proposer une liste déroulante comme bouton avec en fonction du
choix la bonne macro à lancer ?

- De connaître dans la macro, lorsque l'on execute la macro lancée
du bouton, quel bouton l'a lancée ?

Merci

--
Ne pas répondre à l'adresse anti-spam.




---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 07:42:45
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com






Avatar
FFO
Rebonjour Thierry

Pour ta dernière demande comment souhaites tu connaitre la cellule à
l'origine du lancement de la Macro
Résultat dans une cellule
Résultat dans une boîte de dialogue à la fin de l'éxécution de la macro

Merci de préciser



Bonjour,

J'ai une barre d'outils avec plusieurs boutons de la forme :

Set bouton = CommandBars("Cra").Controls.Add(Type:=msoControlButton)

bouton.Style = msoButtonIconAndCaption
bouton.TooltipText = "Création de la feuille de compte rendu d'activité
mensuelle"
bouton.FaceId = 121
bouton.OnAction = "CreCRA"
bouton.Caption = "Cré-CRA"
bouton.Tag = "btn1"
bouton.State = msoButtonUp

J'aurais voulu savoir (sachant que ce code se trouve dans un module dans
(Sub auto_open()) :

- S'il est possible de n'afficher lorsque l'on se trouve sur une
feuille, que les boutons qui la concerne ? et si oui comment ?

- de proposer une liste déroulante comme bouton avec en fonction du
choix la bonne macro à lancer ?

- De connaître dans la macro, lorsque l'on execute la macro lancée
du bouton, quel bouton l'a lancée ?

Merci

--
Ne pas répondre à l'adresse anti-spam.




---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 07:42:45
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com






Avatar
Thierry
Dans une cellule

Merci beaucoup pour tes conseils

"FFO" a écrit dans le message de news:

Rebonjour Thierry

Pour ta dernière demande comment souhaites tu connaitre la cellule à
l'origine du lancement de la Macro
Résultat dans une cellule
Résultat dans une boîte de dialogue à la fin de l'éxécution de la macro

Merci de préciser



Bonjour,

J'ai une barre d'outils avec plusieurs boutons de la forme :

Set bouton = CommandBars("Cra").Controls.Add(Type:=msoControlButton)

bouton.Style = msoButtonIconAndCaption
bouton.TooltipText = "Création de la feuille de compte rendu
d'activité
mensuelle"
bouton.FaceId = 121
bouton.OnAction = "CreCRA"
bouton.Caption = "Cré-CRA"
bouton.Tag = "btn1"
bouton.State = msoButtonUp

J'aurais voulu savoir (sachant que ce code se trouve dans un module dans
(Sub auto_open()) :

- S'il est possible de n'afficher lorsque l'on se trouve sur une
feuille, que les boutons qui la concerne ? et si oui comment ?

- de proposer une liste déroulante comme bouton avec en fonction du
choix la bonne macro à lancer ?

- De connaître dans la macro, lorsque l'on execute la macro
lancée
du bouton, quel bouton l'a lancée ?

Merci

--
Ne pas répondre à l'adresse anti-spam.




---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 07:42:45
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com







---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 09:55:14
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 09:56:08
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com


Avatar
FFO
Rebonjour Thierry

Je te propose donc conformément à ta réponse pour ta dernière demande de
mettre dans le code qui déclenche la macro (l'une des 2 solutions proposées)
aprés la ligne :
Run (Range("A1"))
la ligne
Sheets("feuil1").Range("A2") = ActiveSheet.Name & ActiveCell.Address

Qui aura pour effet de te mettre la feuille et la cellule concernée par le
dernier déclenchement d'une macro dans la cellule A2 de la feuil1

En espérant que celà te convienne

Dis moi !!!


Dans une cellule

Merci beaucoup pour tes conseils

"FFO" a écrit dans le message de news:

Rebonjour Thierry

Pour ta dernière demande comment souhaites tu connaitre la cellule à
l'origine du lancement de la Macro
Résultat dans une cellule
Résultat dans une boîte de dialogue à la fin de l'éxécution de la macro

Merci de préciser



Bonjour,

J'ai une barre d'outils avec plusieurs boutons de la forme :

Set bouton = CommandBars("Cra").Controls.Add(Type:=msoControlButton)

bouton.Style = msoButtonIconAndCaption
bouton.TooltipText = "Création de la feuille de compte rendu
d'activité
mensuelle"
bouton.FaceId = 121
bouton.OnAction = "CreCRA"
bouton.Caption = "Cré-CRA"
bouton.Tag = "btn1"
bouton.State = msoButtonUp

J'aurais voulu savoir (sachant que ce code se trouve dans un module dans
(Sub auto_open()) :

- S'il est possible de n'afficher lorsque l'on se trouve sur une
feuille, que les boutons qui la concerne ? et si oui comment ?

- de proposer une liste déroulante comme bouton avec en fonction du
choix la bonne macro à lancer ?

- De connaître dans la macro, lorsque l'on execute la macro
lancée
du bouton, quel bouton l'a lancée ?

Merci

--
Ne pas répondre à l'adresse anti-spam.




---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 07:42:45
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com







---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 09:55:14
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 09:56:08
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








Avatar
tissot.emmanuel
Bonsoir, bonjour,

- S'il est possible de n'afficher lorsque l'on se trouve sur une
feuille, que les boutons qui la concerne ? et si oui comment ?


En supposant que la propriété Tag contienne le nom de la feuille à laquelle
le bouton est destiné:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim btn As CommandBarButton
With Application.CommandBars("CRA")
For Each btn In .Controls
btn.Enabled = IIf(btn.Tag = Sh.Name, True, False)
Next
End If
End Sub

- de proposer une liste déroulante comme bouton avec en fonction du
choix la bonne macro à lancer ?


Dans ThisWorkbook:

Private Sub Workbook_Open()
Dim Ctlist As CommandBarComboBox
Set Ctlist =
Application.CommandBars("CRA").Controls.Add(Type:=msoControlComboBox)
With Ctlist
.AddItem "Macro1" 'Liste des macros selectionables
.AddItem "Macro2"
.OnAction = "Aiguillage"
End With
End Sub

Dans un module standard:

Sub Aiguillage() 'Macro exécutée à chaque changement de la valeur du
combobox
With Application.CommandBars.ActionControl
Application.Run .List(.ListIndex)
End With
End Sub
Sub Macro1() 'Macros finalement lancé
MsgBox "Macro1"
End Sub
Sub Macro2()
MsgBox "Macro2"
End Sub

Un menu est peut etre plus simple a manier.

- De connaître dans la macro, lorsque l'on execute la macro lancée
du bouton, quel bouton l'a lancée ?



Sub CreCra()
Range("A1").Value = Application.CommandBars.ActionControl.Caption
End Sub

Cordialement,

Manu/

"Thierry" a écrit dans le message de news:
%23$
Bonjour,

J'ai une barre d'outils avec plusieurs boutons de la forme :

Set bouton = CommandBars("Cra").Controls.Add(Type:=msoControlButton)

bouton.Style = msoButtonIconAndCaption
bouton.TooltipText = "Création de la feuille de compte rendu d'activité
mensuelle"
bouton.FaceId = 121
bouton.OnAction = "CreCRA"
bouton.Caption = "Cré-CRA"
bouton.Tag = "btn1"
bouton.State = msoButtonUp

J'aurais voulu savoir (sachant que ce code se trouve dans un module dans
(Sub auto_open()) :

- S'il est possible de n'afficher lorsque l'on se trouve sur une
feuille, que les boutons qui la concerne ? et si oui comment ?

- de proposer une liste déroulante comme bouton avec en fonction du
choix la bonne macro à lancer ?

- De connaître dans la macro, lorsque l'on execute la macro lancée
du bouton, quel bouton l'a lancée ?

Merci

--
Ne pas répondre à l'adresse anti-spam.



---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 07:42:45
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com





Avatar
Thierry
Rebonjour,

j'ai beacoup de soucis en ce moment . Je e suis mal exprimé désolé voilà
j'ai deux boutons différents dans une barre d'outils qui s'affiche sur la
meme feuille et qui pointent sur la meme macro comment savoir dans la macro
sur quel bouton j'ai cliqué pour activer la macro ?

"FFO" a écrit dans le message de news:

Rebonjour Thierry

Je te propose donc conformément à ta réponse pour ta dernière demande de
mettre dans le code qui déclenche la macro (l'une des 2 solutions
proposées)
aprés la ligne :
Run (Range("A1"))
la ligne
Sheets("feuil1").Range("A2") = ActiveSheet.Name & ActiveCell.Address

Qui aura pour effet de te mettre la feuille et la cellule concernée par
le
dernier déclenchement d'une macro dans la cellule A2 de la feuil1

En espérant que celà te convienne

Dis moi !!!


Dans une cellule

Merci beaucoup pour tes conseils

"FFO" a écrit dans le message de news:

Rebonjour Thierry

Pour ta dernière demande comment souhaites tu connaitre la cellule à
l'origine du lancement de la Macro
Résultat dans une cellule
Résultat dans une boîte de dialogue à la fin de l'éxécution de la macro

Merci de préciser



Bonjour,

J'ai une barre d'outils avec plusieurs boutons de la forme :

Set bouton =
CommandBars("Cra").Controls.Add(Type:=msoControlButton)

bouton.Style = msoButtonIconAndCaption
bouton.TooltipText = "Création de la feuille de compte rendu
d'activité
mensuelle"
bouton.FaceId = 121
bouton.OnAction = "CreCRA"
bouton.Caption = "Cré-CRA"
bouton.Tag = "btn1"
bouton.State = msoButtonUp

J'aurais voulu savoir (sachant que ce code se trouve dans un module
dans
(Sub auto_open()) :

- S'il est possible de n'afficher lorsque l'on se trouve sur une
feuille, que les boutons qui la concerne ? et si oui comment ?

- de proposer une liste déroulante comme bouton avec en fonction
du
choix la bonne macro à lancer ?

- De connaître dans la macro, lorsque l'on execute la macro
lancée
du bouton, quel bouton l'a lancée ?

Merci

--
Ne pas répondre à l'adresse anti-spam.




---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 07:42:45
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com







---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 09:55:14
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 09:56:08
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com







---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 11:15:49
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-0, 30/05/2007
Analyse le : 31/05/2007 18:12:25
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com




Avatar
Thierry
Merci pour ces exemples
ne tiens pas compte du message que je viens d'envoyer

"tissot.emmanuel" a écrit dans le message de news:

Bonsoir, bonjour,

- S'il est possible de n'afficher lorsque l'on se trouve sur une
feuille, que les boutons qui la concerne ? et si oui comment ?


En supposant que la propriété Tag contienne le nom de la feuille à
laquelle le bouton est destiné:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim btn As CommandBarButton
With Application.CommandBars("CRA")
For Each btn In .Controls
btn.Enabled = IIf(btn.Tag = Sh.Name, True, False)
Next
End If
End Sub

- de proposer une liste déroulante comme bouton avec en fonction du
choix la bonne macro à lancer ?


Dans ThisWorkbook:

Private Sub Workbook_Open()
Dim Ctlist As CommandBarComboBox
Set Ctlist =
Application.CommandBars("CRA").Controls.Add(Type:=msoControlComboBox)
With Ctlist
.AddItem "Macro1" 'Liste des macros selectionables
.AddItem "Macro2"
.OnAction = "Aiguillage"
End With
End Sub

Dans un module standard:

Sub Aiguillage() 'Macro exécutée à chaque changement de la valeur du
combobox
With Application.CommandBars.ActionControl
Application.Run .List(.ListIndex)
End With
End Sub
Sub Macro1() 'Macros finalement lancé
MsgBox "Macro1"
End Sub
Sub Macro2()
MsgBox "Macro2"
End Sub

Un menu est peut etre plus simple a manier.

- De connaître dans la macro, lorsque l'on execute la macro lancée
du bouton, quel bouton l'a lancée ?



Sub CreCra()
Range("A1").Value = Application.CommandBars.ActionControl.Caption
End Sub

Cordialement,

Manu/

"Thierry" a écrit dans le message de news:
%23$
Bonjour,

J'ai une barre d'outils avec plusieurs boutons de la forme :

Set bouton = CommandBars("Cra").Controls.Add(Type:=msoControlButton)

bouton.Style = msoButtonIconAndCaption
bouton.TooltipText = "Création de la feuille de compte rendu
d'activité mensuelle"
bouton.FaceId = 121
bouton.OnAction = "CreCRA"
bouton.Caption = "Cré-CRA"
bouton.Tag = "btn1"
bouton.State = msoButtonUp

J'aurais voulu savoir (sachant que ce code se trouve dans un module dans
(Sub auto_open()) :

- S'il est possible de n'afficher lorsque l'on se trouve sur une
feuille, que les boutons qui la concerne ? et si oui comment ?

- de proposer une liste déroulante comme bouton avec en fonction du
choix la bonne macro à lancer ?

- De connaître dans la macro, lorsque l'on execute la macro lancée
du bouton, quel bouton l'a lancée ?

Merci

--
Ne pas répondre à l'adresse anti-spam.



---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 07:42:45
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000746-0, 30/05/2007
Analyse le : 31/05/2007 18:13:14
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-0, 30/05/2007
Analyse le : 31/05/2007 18:15:22
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com