XL 2016 Activer / Désactiver bouton

Bandoulier

XLDnaute Junior
Bonjour,

Dans une feuille Excel (attention, pas un UserForm) j'ai un bouton qui lance une macro quand on clique dessus. Par défaut donc, ce bouton est actif. Parfois, j'ai besoin d’accéder à cette feuille, mais que le bouton ne soit pas actif.
Toute l'aide que j'ai pu trouver sur le net ne concerne que les boutons qui sont dans des UserForm ... ce qui n'est pas mon cas (mon bouton est dans une simple feuille de calcul). En fait il faudrait que j'accède aux propriétés de ce bouton, mais où les trouver ?
Merci d'avance à tous ceux qui pourront m'aider.
 

Bandoulier

XLDnaute Junior
Bonsoir le fil

Un solution radicale
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Shapes("Button 1").Visible = Target.Address = "$A$1"
End Sub

Bonjour JM,
Merci de t'être intéressé à mon cas.
J'avoue ne pas comprendre ta solution : Où dois-je mettre cette procédure ? Que vient faire la cellule A1 dans cette procédure ?
Merci d'avance
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Bandoulier

Bah, quand le demandeur ne joint pas de fichier exemple, je teste sur mon fichier exemple...:rolleyes:

Le code (pour test) est à mettre dans le code d'une feuille (donc pas dans un module standard) sur laquelle se trouvera un bouton (Contrôle formulaire)
Une solution plus pérenne serait l'emploi d'un CommandButton (ActiveX) à la place du bouton.
 

Staple1600

XLDnaute Barbatruc
Re

Donc toujours sur mon fichier de Test
(avec cette-fois-ci un CommandButton)
Dans le code de feuille où se trouve le CommandButton
VB:
Private Sub Worksheet_Activate()
CommandButton1.Enabled = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CommandButton1.Enabled = Target.Address = CommandButton1.TopLeftCell.Address
End Sub
NB: Pour tester, il faut que la feuille comporte plus d'une feuille.
PS: Pour réactiver, le code (dans un 1er temps) seul celui qui a écrit le code VBA saura quoi faire ;)
 

Bandoulier

XLDnaute Junior
Bonjour le fil, Bandoulier

Bah, quand le demandeur ne joint pas de fichier exemple, je teste sur mon fichier exemple...:rolleyes:

Le code (pour test) est à mettre dans le code d'une feuille (donc pas dans un module standard) sur laquelle se trouvera un bouton (Contrôle formulaire)
Une solution plus pérenne serait l'emploi d'un CommandButton (ActiveX) à la place du bouton.
Bonjour JM,
Grâce à toi j'ai trouvé !
Dans ma macro, je mets simplement une partie de ce que tu m'as donné :
ActiveSheet.Shapes("Button 1").Visible = True ou False suivant le cas
Et ça marche
Merci, merci, merci !
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Bandoulier

•>Bandoulier
Il n'y a d'obligation à signaler un fil comme étant résolu.
Personnellement, je pense qu'une question n'est jamais vraiment résolue ;)
Il y aura toujours N solutions à une question "excelienne" ;)

PS: Si vraiment, tu veux indiquer Résolu, voir la discussion idoine dans le Salon d'XLD.
 

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib