Menu

Faire disparaitre un bouton sous condition [Résolu/Fermé]

maud1681 - 7 févr. 2017 à 11:03 - Dernière réponse : Maud1681 14 Messages postés mercredi 8 février 2017Date d'inscription 16 février 2017 Dernière intervention
- 8 févr. 2017 à 14:44
Bonjour,

Je voudrais faire apparaître un bouton quand la cellule A35 contient "DG".

Voici mon code :

Public Sub Gestion_Signature_DG()
If Range("A35").Value = "DG" Then
ActiveSheet.Shapes("CommandButton3").Visible = True
Else
ActiveSheet.Shapes("CommandButton3").Visible = False
End If
End Sub


Le bouton n'est pas visible quand DG n'est pas présent mais il ne réapparait pas quand c'est le cas... je ne comprends pas pourquoi... pouvez-vous m'aider ?

Afficher la suite 

11 réponses

pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 7 févr. 2017 à 11:18
0
Utile
Bonjour,

il faut utiliser un événement de ta feuille.

Pour cela :
  • clic droit sur l'onglet de la feuille concernée
  • visualiser le code
  • copier/coller ce code :


Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address <> "$A$35" Then Exit Sub
  If Target.Value = "DG" Then
    ActiveSheet.Shapes("CommandButton3").Visible = True
  Else
    ActiveSheet.Shapes("CommandButton3").Visible = False
  End If
End Sub 

cs_Le Pivert 5144 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 19 mai 2018 Dernière intervention - 7 févr. 2017 à 11:42
Salut pijaku,

j'étais en train de rédiger ma réponse quand tu as répondu!

Bonne journée

@+ Le Pivert
pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention > cs_Le Pivert 5144 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 19 mai 2018 Dernière intervention - 7 févr. 2017 à 11:54
Salut,

Oui, nous nous sommes croisés.
Mais 2 réponses valent mieux qu'une !
Bonne journée également.
A++
cs_Le Pivert 5144 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 19 mai 2018 Dernière intervention - 7 févr. 2017 à 11:21
0
Utile
Bonjour,

Ce code fonctionne bien, cela dépend de la façon dont la Sub Gestion_Signature_DG est appelée !

Pour essai mettre le curseur sur
Public Sub Gestion_Signature_DG()
et appuyer sur le touche F5
Bonjour à vous deux et merci pour vos réponses !
Je suis une grande débutante en VBA... j'ai essayé de copier/coller le code :
le bouton disparaît bien mais ne réapparait pas et quand je demande d'exécuter la macro en cliquant sur play, le bouton exécuter est grisé... est-ce normal ?
J'ai également essayé de faire F5 sur private sub, et pas de réaction...
J'ai encore besoin de vos lumières,
merci d'avance,
pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 8 févr. 2017 à 10:32
0
Utile
Bonjour,

Et pourtant : http://www.cjoint.com/c/GBijGqIyReE
Maud1681 14 Messages postés mercredi 8 février 2017Date d'inscription 16 février 2017 Dernière intervention - 8 févr. 2017 à 11:18
Oui je ne comprends pas...
voici mon fichier
http://www.cjoint.com/c/GBiksrHYWPO
pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention > Maud1681 14 Messages postés mercredi 8 février 2017Date d'inscription 16 février 2017 Dernière intervention - 8 févr. 2017 à 11:44
Tu ne nous dit pas tout !
Ce n'est pas ta cellule A16 qui détermine l'apparition ou non de ton bouton, mais le choix dans ta cellule A1.

Par conséquent, ton code devient :
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address <> "$A$1" Then Exit Sub
  If Target.Value = Worksheets("PARAMETRES").Range("B4") Then
    ActiveSheet.Shapes("CommandButton3").Visible = True
  Else
    ActiveSheet.Shapes("CommandButton3").Visible = False
  End If
End Sub
Maud1681 14 Messages postés mercredi 8 février 2017Date d'inscription 16 février 2017 Dernière intervention > pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 8 févr. 2017 à 14:08
Yes !!!! super, ça marche !! merci beaucoup !!
J'en profite...
J'ai essayé de faire remonter le nom de l'utilisateur en cliquant sur un bouton :
Quand l'utilisateur clique, le bouton disparaît et son nom apparait dans la cellule qui est dessous.
J'ai utilisé le code : Range("A1") = Application.UserName
ça marche sauf que c'est le nom du propriétaire d'excel qui remonte...donc le nom de la société --> nul
Sais-tu quel code je peux utiliser pour faire remonter le nom de la personne qui a ouvert la session de l'ordi ?
pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention > Maud1681 14 Messages postés mercredi 8 février 2017Date d'inscription 16 février 2017 Dernière intervention - 8 févr. 2017 à 14:31
Oui.

Dim monNom As String
monNom = Environ("UserName")
Maud1681 14 Messages postés mercredi 8 février 2017Date d'inscription 16 février 2017 Dernière intervention - 8 févr. 2017 à 14:44
impec !! cela marche bien !!
un grand merci !!