Afficher un label sous condition

SSI83000

XLDnaute Occasionnel
Bonjour à tous je reviens vers vous pour un petit coup de main



dans mon projet je souhaite afficher sous USF un label sous condition j'utilise donc cette macro proposé par geotrouvepas et modifier par moi même pour mes besoins
Code:
Module3.pointEff
Dim Ctrl As Control

    For Each Ctrl In UserForm1.Controls
        If TypeName(Ctrl) = "Label" And Left(Ctrl.Name, 7) = ("DM_") & (UserForm1.C1.Text) & "_" & (UserForm1.C2.Text) Then
         
            Ctrl.Visible = True
        End If
    Next

cela fonctionne trés bien mon soucis est si je met dans C1 "1" et dans C2 "22" j'ai bien mon label DM_1_22 qui 's'affiche.

en revanche si je met en C1 "1" et C2 "2" la rien ne s'affiche alors que le label DM_1_2 est bien présent.

comment puis je faire svp pour que ses 2 posibilité soit faisable.

une Pj de base que ma élaboré Paritec

merci d'avance de votre aide
 

Pièces jointes

  • test1V4.zip
    24.8 KB · Affichages: 35
  • test1V4.zip
    24.8 KB · Affichages: 36
  • test1V4.zip
    24.8 KB · Affichages: 36

Modeste

XLDnaute Barbatruc
Re : Afficher un label sous condition

Bonjour SSI83000,

Sans doute parce que cette partie d'instruction
Code:
Left(Ctrl.Name, 7) = ("DM_") & (UserForm1.C1.Text) & "_" & (UserForm1.C2.Text)
donne 'DM_1_22' dans le premier cas, mais 'DM_1_2_' dans le second cas ... et que cette chaîne de caractères ne correspond pas au nom d'un de tes labels?
 

SSI83000

XLDnaute Occasionnel
Re : Afficher un label sous condition

Bonjour modeste et merci pour ton intervention je sais la raison de ceux probleme ce que je savais et sais toujour pas c'est comment y remedier en modifiant mon bout de code.

si quelqu'un à une idée svp se serais sympa à bientôt
 

SSI83000

XLDnaute Occasionnel
Re : Afficher un label sous condition

Re bonjour à tous force de recherche j'ai modifier ma macro comme ceci


Code:
Sub Zone()
Module3.pointEff
Dim Ctrl As Control

    For Each Ctrl In USERFORM1.Controls
        If TypeName(Ctrl) = "Label" And Left(Ctrl.Name, 7) = ("MOD_") & (USERFORM1.Zone.Text) & "_" & (USERFORM1.C2.Text) Then
         
            Ctrl.Visible = True
            
            End If
            
             If TypeName(Ctrl) = "Label" And Left(Ctrl.Name, 8) = ("MOD_") & (USERFORM1.Zone.Text) & "_" & (USERFORM1.C2.Text) Then
         
            Ctrl.Visible = True
            
           
         End If
           
    Next

End Sub

et cela fonctionne parfaitement bonne soirée à tous
 

Softmama

XLDnaute Accro
Re : Afficher un label sous condition

Bonsoir,

Un peu tiré par les cheveux et sans trop me poser de questions, je propose de remplacer :

VB:
If TypeName(Ctrl) = "Label" And Left(Ctrl.Name, 7) = ("MOD_") & (USERFORM1.Zone.Text) & "_" & (USERFORM1.C2.Text) Then

par

VB:
If TypeName(Ctrl) = "Label" And Left(Ctrl.Name, 5 + Len(USERFORM1.Zone.Text & USERFORM1.C2.Text)) = ("MOD_") & (USERFORM1.Zone.Text) & "_" & (USERFORM1.C2.Text) Then

Mais par contre, je te laisse tester...
 
Dernière édition:

SSI83000

XLDnaute Occasionnel
Re : Afficher un label sous condition

Bonsoir et merci Softmama j'ai bien tester ta solution mais sa ne résou pas mon probléme.
je m'explique quant je tape dans dans C2 22 la ok une seule label s'affiche mais si je rentre 2 j'ai les 2 label qui s'affiche.

je rapelle le nom des label

MOD_1_2_1 et MOD_1_22_1

et ce que je recherche sais si dans C1 je rentre 1 et C2 je rentre 2 le label MOD_1_2_1
s'affiche si je rentre dans C1 1 et C2 22 le label MOD_1_22_1 s'affiche je reprend volontairement les donnée de la pj evidement y en à beaucoup plus.


pour info j'ai remis une piece jointe avec la proposition de Softmama

je reste dispo a tous ce qui voudrons bien m'aider à résoudre mon probléme et leurs remercie d'avance.
 

Pièces jointes

  • test1V4.zip
    20.7 KB · Affichages: 31
  • test1V4.zip
    20.7 KB · Affichages: 33
  • test1V4.zip
    20.7 KB · Affichages: 36

Softmama

XLDnaute Accro
Re : Afficher un label sous condition

Re,

J'ai regardé plus attentivement ton problème, et je me suis rendu compte que je ne l'avais pas du tout cerné ^^

Donc il suffit que tu remplaces dans ta macro Zone(), la 4ème ligne par :
VB:
If TypeName(Ctrl) = "Label" And Left(Ctrl.Name, 6 + Len(UserForm1.C1.Text & UserForm1.C2.Text)) = "MOD_" & UserForm1.C1.Text & "_" & UserForm1.C2.Text & "_" Then
Ainsi, le Test sur Mod_1_22_ ne sera pas confondu avec Mod_1_2_ qui ne commencent plus pareil jusqu'au 3ème _.
 

SSI83000

XLDnaute Occasionnel
Re : Afficher un label sous condition

Re Bonsoir Softmama merciiiiiiiiiiiiiiiii tu es la meilleur tu m'enleve un gros soucis j'était à 2 doigt de changer ma façon de faire
super sympa
un grand merci à tous ceux qui m'ont aider et Bonne préparation de vos fête de noël
bonne soirée à tous .
 

Discussions similaires

Statistiques des forums

Discussions
312 756
Messages
2 091 748
Membres
105 062
dernier inscrit
Ret78