Faire disparaitre un bouton sous condition

Résolu
maud1681 -  
Maud1681 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
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 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
Maud1681
 
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   Statut Modérateur Dernière intervention   2 761
 
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 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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   Statut Modérateur Dernière intervention   2 761 > cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention  
 
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   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

Et pourtant : https://www.cjoint.com/c/GBijGqIyReE
0
Maud1681 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Oui je ne comprends pas...
voici mon fichier
https://www.cjoint.com/c/GBiksrHYWPO
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > Maud1681 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   > pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention  
 
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   Statut Modérateur Dernière intervention   2 761 > Maud1681 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Oui.

Dim monNom As String
monNom = Environ("UserName")
0
Maud1681 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
impec !! cela marche bien !!
un grand merci !!
0