Faire disparaitre un bouton sous condition [Résolu]

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

Répondre au sujet
pijaku 12206 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 7 févr. 2017 à 11:18
0
Utile
2
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 4770 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 14 décembre 2017 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 12206 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention > cs_Le Pivert 4770 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 14 décembre 2017 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++
Commenter la réponse de pijaku
cs_Le Pivert 4770 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 7 févr. 2017 à 11:21
0
Utile
1
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,
Commenter la réponse de cs_Le Pivert
pijaku 12206 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 8 févr. 2017 à 10:32
0
Utile
5
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 12206 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 12206 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 12206 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 !!
Commenter la réponse de pijaku