Afficher ou cacher un Bouton selon un caption

Fermé
Signaler
Messages postés
21
Date d'inscription
jeudi 27 avril 2017
Statut
Membre
Dernière intervention
13 mars 2018
-
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
-
Bonjour à tous !

J'ai un document Excel qui exécute une maccro si ont clique une zone de txt.

Toutes mes macro exécutent le même Multipage qui affichent mes données dans différents Captions. Pour différencier mes macro j'utilise un caption de référence comprenant le nom de ma macro.

Mon problème est je n'arrive pas a afficher ou cacher un bouton selon la macro exécute :/.

J'ai une début de piste de mon coté :

Private Sub UserForm_Initialize()

If Label_ref.Caption = "macro" Then
BoutonJPT.Visible = True
Else
BoutonJPT.Visible = False
End If
End Sub




J'espère que je suis assez claire? Si non n'hésiter pas à me demander plus d'info..

merci à l'avance

1 réponse

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 560
Bonjour,

Cela devrait fonctionner et tu peux même simplifier ainsi :
Private Sub UserForm_Initialize()
    BoutonJPT.Visible = IIf(Label_ref.Caption = "macro", False, True)
End Sub
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
21
Date d'inscription
jeudi 27 avril 2017
Statut
Membre
Dernière intervention
13 mars 2018

Merci de ta réponse rapide

Mais malheureusement ta ligne de code ne fonctionne pas, je pense que cela doit venir du "Label_ref.Caption".

Je suis un débutant en VBA, pour tester mon label je devrais afficher un Messagebox contenant mon label ?

Mais je ne sais comment programmé ça :/
Messages postés
21
Date d'inscription
jeudi 27 avril 2017
Statut
Membre
Dernière intervention
13 mars 2018

J'ai réussi à faire un teste avec un message Box

Private Sub UserForm_Initialize()
txt = Label_ref.Caption
MultiPage1.Value = 0
BoutonJPT.Visible = IIf(Label_ref.Name = "macro", False, True)
MsgBox txt
End Sub

Le message Box affiche un caption défini par défaut, il n'affiche pas le nouveau caption qui est censé être " macro"
Messages postés
21
Date d'inscription
jeudi 27 avril 2017
Statut
Membre
Dernière intervention
13 mars 2018

J'ai refait un test ( désolé du triple post )

Quand j’exécute :
Private Sub UserForm_Initialize()
txt = Label_ref.Caption
MultiPage1.Value = 0
If Label_ref.Caption = "Référenc" Then
BoutonJPT.Visible = True
Else
BoutonJPT.Visible = False
End If

End Sub

Le bouton n'est pas visible et si j'exécute :

Private Sub UserForm_Initialize()
txt = Label_ref.Caption
MultiPage1.Value = 0
If Label_ref.Caption = "Référence" Then
BoutonJPT.Visible = True
Else
BoutonJPT.Visible = False
End If

End Sub

Le bouton est visible.

Donc mon problème viens bien de mon caption qui n'est pas pris en compte à l'initialisation du USF ( je pense )

Pour aider voici ma maccro :

Sub BuchholzTP()
reference = "BuchholzTP"
Call colonnes
adresse_ref = Sheets("Contenu").Range("A:A").Cells.Find(reference).Address
ligne_ref = Split(adresse_ref, "$")(2)

'TEST_DYNAMIQUE.caption = Sheets("Contenu").Range(col_nom & ligne_ref).Value
TEST_DYNAMIQUE.Label1.Caption = Sheets("Contenu").Range("C" & ligne_ref).Value
TEST_DYNAMIQUE.Label2.Caption = Sheets("Contenu").Range("D" & ligne_ref).Value
TEST_DYNAMIQUE.Label3.Caption = Sheets("Contenu").Range("E" & ligne_ref).Value
TEST_DYNAMIQUE.Label4.Caption = Sheets("Contenu").Range("F" & ligne_ref).Value


TEST_DYNAMIQUE.Label_ref = reference
TEST_DYNAMIQUE.Show
End Sub
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 560
Bonsoir,

Mais malheureusement ta ligne de code ne fonctionne pas,
Pourtant cette ligne de code fonctionne si elle est utilisée correctement.

Si dans Label_ref tu n'as pas ce que tu attends nécessairement le résultat n'est pas celui attendu. Plutôt que de mettre un msgbox tu devrais faire du pas à pas et regarder ce que tu as dans tes variables.