Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Afficher ou masquer commandbutton avec condition

pat66

XLDnaute Impliqué
Bonjour Le forum,
je cherche la macro qui me permette d'afficher ou masquer un commandbutton
ex :
en B6 il y a écrit : Lyon ou Marseille ou Paris, le bouton s'affiche
en B6 il y a écrit: Nantes ou Bayonne ou Nice, le bouton reste masqué

Je précise que la source de B6 est sur une autre feuille

un grand merci

Pat66
 
Dernière édition:
Solution
Bonjour à tous,
effectivement Jacky pour réinitialiser la couleur il suffit de rajouter en feuil1 dans activate
If CommandButton1.Visible = False Then
Range("D12") = "B"
CommandButton1.BackColor = RGB(19, 31, 57)
CommandButton1.ForeColor = RGB(255, 192, 0)
End If
Range("A2").Select

merci à tous et belle journée

Phil69970

XLDnaute Barbatruc
Re

Mon fichier au post #13 fonctionne bien chez moi.
Si tu fais en mode pas à pas (F8) tu verras que tout marche bien.
Je ne pense pas que activate s'utilise avec une cellule mais plutôt avec une feuille.
Avec une cellule c'est plutôt ==> Range("E14").Select

@Phil69970
 

Jacky67

XLDnaute Barbatruc
Bonjour à tous
Perso, je n'éprouve aucune difficulté a faire ce qui est demandé avec le classeur que j'ai mis en ligne.
Le problème vient d'ailleurs........
 

pat66

XLDnaute Impliqué
Bonjour à tous,
effectivement Jacky pour réinitialiser la couleur il suffit de rajouter en feuil1 dans activate
If CommandButton1.Visible = False Then
Range("D12") = "B"
CommandButton1.BackColor = RGB(19, 31, 57)
CommandButton1.ForeColor = RGB(255, 192, 0)
End If
Range("A2").Select

merci à tous et belle journée
 

Jacky67

XLDnaute Barbatruc
Heu...
Pourquoi peinturlurer ce "commandButton" à l'activation d'une feuille s'il n'est pas visible ???????
Il suffirait de lui donner ses couleurs dans sa propriété par défaut, qu'il affichera quand il sera visible.
Ou alors j'ai pas compris la manœuvre...
 

Pièces jointes

  • Classeur1-VillesV2.xlsm
    20.6 KB · Affichages: 22

pat66

XLDnaute Impliqué
bonjour,
effectivement tu as raison, je me mélange les pinceaux et me complique l'existence par mon ignorance et heureusement que les experts que vous êtes nous filent un coup de main pour utiliser cet outil fabuleux qu'est excel

Ce que je souhaite obtenir c'est que lorsque je reviens sur la feuil1 après avoir testé plusieurs villes, le bouton même si il est apparent, car la nouvelle ville choisie fait partie de la liste, se réinitialise comme avec le double clic ci dessous

Précision qui, je viens de comprendre, peut avoir son importance :
D14 contient la formule suivante :=SI(D12="A";200;0)
et le but c'est que D14 soit à 0 lorsque je reviens sur la feuil1 mais seulement si changement de ville en feuil2 et qu'elle que soit cette ville

Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
CommandButton1.BackColor = RGB(19, 31, 57)
CommandButton1.ForeColor = RGB(255, 192, 0)
Range("D12") = "B"
End Sub

pour info:
Private Sub CommandButton1_Click()
CommandButton1.BackColor = RGB(0, 176, 80)
CommandButton1.ForeColor = RGB(255, 255, 255)
Range("D12") = "A"
End Sub

Un grand merci pour ton aide et ta patience

Pat66
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Heu, là, je ne suis plus......
Si tu choisis Paris en feuille 2 le bouton est visible, ensuite tu doubles clic sur le bouton D12 devient "B" , ce qui équivaut à choisir une ville ou le bouton était invisible.
Ou est l'embrouille ?
 

pat66

XLDnaute Impliqué
oui je comprends c'est ce que je souhaite, que lorsque je reviens sur la feuil1 et parce que j'ai changé et choisis une autre ville de la liste, D12 = A et le bouton change couleur idem macro double clic pour indiquer que l'action du click n'est plus en fonction et que pour la réactiver il faut faire un clic sur le bouton

Cette macro rend le bouton visible ou indisible :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$6" Then
Application.EnableEvents = False
With Feuil1
If LCase([b6]) = "lyon" Or LCase([b6]) = "marseille" Or LCase([b6]) = "paris" Then
.CommandButton1.Visible = True
.[d12] = "A"
Else
.CommandButton1.Visible = False
.[d12] = "B"
End If
End With
Application.EnableEvents = True
End If
End Sub

mais ensuite le bouton a deux actions :
Private Sub CommandButton1_Click()
CommandButton1.BackColor = RGB(0, 176, 80)
CommandButton1.ForeColor = RGB(255, 255, 255)
Range("D12") = "A"
End Sub

Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
CommandButton1.BackColor = RGB(19, 31, 57)
CommandButton1.ForeColor = RGB(255, 192, 0)
Range("D12") = "B"
End Sub

est ce possible ?

merci
 

Jacky67

XLDnaute Barbatruc
Re..
Pour moi, c'est toujours aussi nébuleux...
Est-ce que les codes du #22 fonctionnent comme souhaité ?
Rien de changer #21 toujours valide, pourtant il est dit/écrit "oui je comprends c'est ce que je souhaite"
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…