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

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    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
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Salut pijaku,

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

      Bonne journée

      @+ Le Pivert
      0
      1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > cs_Le Pivert Messages postés 8437 Statut Contributeur
         
        Salut,

        Oui, nous nous sommes croisés.
        Mais 2 réponses valent mieux qu'une !
        Bonne journée également.
        A++
        0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Et pourtant : https://www.cjoint.com/c/GBijGqIyReE
    0
    1. 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
      1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > 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
      2. Maud1681 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   > pijaku Messages postés 13513 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
      3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > Maud1681 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
         
        Oui.

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