Faire disparaitre un bouton sous condition

Résolu/Fermé
maud1681 - Modifié par pijaku le 7/02/2017 à 11:15
Maud1681 Messages postés 14 Date d'inscription mercredi 8 février 2017 Statut Membre Dernière intervention 16 février 2017 - 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 ?

3 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
7 févr. 2017 à 11:21
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
1
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,
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
7 févr. 2017 à 11:18
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 

0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
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
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743 > cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024
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++
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
8 févr. 2017 à 10:32
Bonjour,

Et pourtant : https://www.cjoint.com/c/GBijGqIyReE
0
Maud1681 Messages postés 14 Date d'inscription mercredi 8 février 2017 Statut Membre Dernière intervention 16 février 2017
8 févr. 2017 à 11:18
Oui je ne comprends pas...
voici mon fichier
https://www.cjoint.com/c/GBiksrHYWPO
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743 > Maud1681 Messages postés 14 Date d'inscription mercredi 8 février 2017 Statut Membre Dernière intervention 16 février 2017
Modifié par pijaku le 8/02/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
0
Maud1681 Messages postés 14 Date d'inscription mercredi 8 février 2017 Statut Membre Dernière intervention 16 février 2017 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
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 ?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743 > Maud1681 Messages postés 14 Date d'inscription mercredi 8 février 2017 Statut Membre Dernière intervention 16 février 2017
8 févr. 2017 à 14:31
Oui.

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