PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 20 nov. 2005 à 19:47
et on la refait...
normalement, çà devrait fonctionner pour tout!
For Each MyObject In zone2.Controls
If Val(MyObject.Tag) <= Val (zone1.Tag) Then
If TypeName(MyObject) = "Label" Then
MyObject.Visible = True If MyObject.Tag zone1.Tag Then MyObject.Caption "tiroir bas"
ElseIf TypeName (MyObject) = "TextBox" Then
MyObject.Visible = True
End If
End If
Next
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 20 nov. 2005 à 14:56
re,
en supposant que tes 2 UserForm soient visibles (et sachant que je ne touche pas à VBA), tu devrais mettre In Me.
et l'erreur vient du fait que même si tu ne passes pas dans la boucle (si pas Tag...), un .. TextBox.Caption n'existe pas.
ouai ....., on ne le lit pas, mais c'est comme çà.
donc If TypeOf MyObject Is Label Then MyObject.Caption = "Tiroir bas" (voir syntaxe JpLeroisse TypeName peut-être...)
treza88
Messages postés36Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention23 octobre 2010 20 nov. 2005 à 15:20
ok PCPT [AFCK]
Le probleme venais bien de la : le textbox.caption n'existe pas
j'ai donc suivi les conseils de vous deux est j'ai taper le code suivant et, plus d'erreur mais le caption ne passe pas a la valeur "tiroir bas"
For Each MyObject In zone2.Controls
If TypeName(MyObject) = "label" Then
If Val(MyObject.Tag) = Val(zone1.Tag) Then
MyObject.Caption = "Tiroir bas"
End If
End If
Next
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 20 nov. 2005 à 15:32
re,
1) remplace In zone2.Controls par In Me (ton code est bien dans le UserForm nommé zone2... ?)
2) attention, le Tag est un Variant. essaie peut-être juste If MyObject.Tag = zone1.Tag Then ...
(à savoir que tu compares le Tag des Labels du zone2 au zone1 lui-même.
treza88
Messages postés36Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention23 octobre 2010 20 nov. 2005 à 16:36
Encore merci pour vos reponse a mon appel désespéré
Mon dernier code est celui ci:
Dim MyObject2 As Control
For Each MyObject2 In zone2.Controls
If TypeName(MyObject2) = "Label" Then
If MyObject2.Tag = zone1.cbx_nb.Text Then
MyObject = "Tiroir bas"
End If
End If
Next
le but est que de puis la valeur 3 d'une combobox de zone1 (userform1) on affiche une userform zone2 avec 3 textbox et trois label et si dans le combobox la valeur et 4 on affiche dans zone2 4 textbox et 4 label et tous ça fonctionne avec les proprietes tag mais je voudrais que le label dont la propriete tag et egal a 3 ou a 4 suivant le cas de figure s'affiche dans la zone 2 avec le caption "tiroir bas"
J'ai essayer différentes choses avec vos propositions mais j'ai toujours le caption du label des propritétés de départ et pas celui programmé
si ça peut vous aiguiller un peu plus Merci D'avance
For Each MyObject In zone2.Controls
If Val(MyObject.Tag) <= Val(zone1.Tag) Then
MyObject.Visible = True
ElseIf Val(MyObject.Tag) = Val(zone1.Tag) Then
MyObject.Caption = "tiroir bas"
End If
Next
If TypeName(MyObject) = "label" Then
If Val(MyObject.Tag) = Val(zone1.Tag) Then
MyObject.Caption = "tiroir bas"
End If
End If
End Sub
et je ne comprend pas pourquoi la parti en rouge ne me change pas le caption du label ayant la propriete tag du label concerné egale au chiffre selectionné dans la combobox de zone1
tout fonctionne sauf ça.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 20 nov. 2005 à 18:53
ummmm...
For Each MyObject In zone2.Controls
If Val(MyObject.Tag) < Val(zone1.Tag) Then
MyObject.Visible = True
ElseIf Val(MyObject.Tag) = Val(zone1.Tag) Then
MyObject.Visible = True
MyObject.Caption = "tiroir bas"
End If
Next
treza88
Messages postés36Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention23 octobre 2010 20 nov. 2005 à 19:06
ok sauf que dans mon cas
MyObject.Caption = "tiroir bas"
doit ce limiter aux objets label et non pas a tout les objets de la userform car il y a egalement des textbox donc je dois afficher les textbox et les label et en même temps uniquement modifier le label qui a une valeur egal a la propriete tag qui doit prendre la valeur "tiroir bas"
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 20 nov. 2005 à 19:13
ouaip, mais c'est une réponse qui t'a déjà été donnée. je n'ai fait que reprendre tes dernières lignes de code...
et rappel : je ne touche pas VBA
For Each MyObject In zone2.Controls
If TypeName(MyObject) = "Label" Then
If Val (MyObject.Tag) < Val(zone1.Tag) Then
MyObject.Visible = True
ElseIf Val(MyObject.Tag) = Val (zone1.Tag) Then
MyObject.Visible = True
MyObject.Caption = "tiroir bas"
End If
End If
Next
treza88
Messages postés36Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention23 octobre 2010 20 nov. 2005 à 19:29
ok ça marche tres bien avec les label mais je n'ai plus qu'eux qui s'affichent les textbox ne s'affichent
For Each MyObject In zone2.Controls
If TypeName(MyObject) = "Label" Then
If Val (MyObject.Tag) < Val(zone1.Tag) Then
MyObject.Visible = True
ElseIf Val(MyObject.Tag) = Val (zone1.Tag) Then
MyObject.Visible = True
MyObject.Caption = "tiroir bas"
End If
End If
Next
Mais je viens de cumuler l'ensemble de tous ça et le code suivant fonctionne sauf si il est possible de le réduire
'affichage des Label
For Each MyObject In zone2.Controls
If TypeName(MyObject) = "Label" Then
If Val(MyObject.Tag) < Val(zone1.Tag) Then
MyObject.Visible = True
ElseIf Val(MyObject.Tag) = Val(zone1.Tag) Then
MyObject.Visible = True
MyObject.Caption = "tiroir bas"
End If
End If
Next
'Affichage des textbox
For Each MyObject In zone2.Controls
If Val(MyObject.Tag) <= Val(zone1.Tag) Then
MyObject.Visible = True
End If
Next
autre chose comment tu as fait pour colorer la syntaxe automatiquement