Afficher ou cacher un Bouton selon un caption

Fermé
MastJager Messages postés 21 Date d'inscription jeudi 27 avril 2017 Statut Membre Dernière intervention 13 mars 2018 - 4 mai 2017 à 08:45
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 4 mai 2017 à 19:02
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
A voir également:

1 réponse

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 685
4 mai 2017 à 09:38
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
MastJager Messages postés 21 Date d'inscription jeudi 27 avril 2017 Statut Membre Dernière intervention 13 mars 2018
4 mai 2017 à 10:09
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 :/
0
MastJager Messages postés 21 Date d'inscription jeudi 27 avril 2017 Statut Membre Dernière intervention 13 mars 2018
4 mai 2017 à 10:20
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"
0
MastJager Messages postés 21 Date d'inscription jeudi 27 avril 2017 Statut Membre Dernière intervention 13 mars 2018
4 mai 2017 à 10:26
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
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 685
4 mai 2017 à 19:02
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.
0