UserForm / TextBox
Bonjour,
Voilà, dans un Userform, j'ai une vingtaine de champ de saisie nommés de champ1 à champ 20.
Comment faire pour appliquer les mêmes conditions pour chaque champ ? (exemple sur la valeur du champ = 1, mettre en couleur bleue ; si = 2, en rouge, ...
J'ai essayé ce genre de chose mais on ne peut pas manipuler les objets de la sorte :
Dim Champsaisie as String
For x=1 to 20
Champsaisie= "champ" & x
If Userform."Champsaisie"=1 then
With "Champsaisie"
.backcolor=255
.forecolor=255
end with
If userform."Champsaisie"=2 then ......
Next x
Bien sur ce code est imaginaire et ne fonctionne pas mais c'est pour que compreniez un peu ce que je cherche (utiliser une boucle pour agir sur plusieurs objets dans un UF).
Merci de votre aide.
Salut2xf a écrit :Bonjour,
Voilà, dans un Userform, j'ai une vingtaine de champ de saisie nommés de champ1 à champ 20.
Comment faire pour appliquer les mêmes conditions pour chaque champ ? (exemple sur la valeur du champ = 1, mettre en couleur bleue ; si = 2, en rouge, ...
J'ai essayé ce genre de chose mais on ne peut pas manipuler les objets de la sorte :
Dim Champsaisie as String
For x=1 to 20
Champsaisie= "champ" & x
If Userform."Champsaisie"=1 then
With "Champsaisie"
.backcolor=255
.forecolor=255
end with
If userform."Champsaisie"=2 then ......
Next x
Bien sur ce code est imaginaire et ne fonctionne pas mais c'est pour que compreniez un peu ce que je cherche (utiliser une boucle pour agir sur plusieurs objets dans un UF).
Merci de votre aide.
champs ?
peut-être que si tu utilisais les bons termes, tu pourrais trouvers des aides : à Rome parle romain !
Si tes textbox ont un nom "sérialisable) tu peux utiliser la forme :
For X = 1 to 20
if me.controls("champ" & x) = 1 then
à condition que tes textbox aillent de champ1 à champ20
ou avec une formulation de ce type
Dim C As Control
For Each C In Me.Controls
If C.Name Like "Champ*" And C = 1 Then
End If
Next CA+
SalutGorfael a écrit :2xf a écrit :Bonjour,
Voilà, dans un Userform, j'ai une vingtaine de champ de saisie nommés de champ1 à champ 20.
Comment faire pour appliquer les mêmes conditions pour chaque champ ? (exemple sur la valeur du champ = 1, mettre en couleur bleue ; si = 2, en rouge, ...
J'ai essayé ce genre de chose mais on ne peut pas manipuler les objets de la sorte :
Dim Champsaisie as String
For x=1 to 20
Champsaisie= "champ" & x
If Userform."Champsaisie"=1 then
With "Champsaisie"
.backcolor=255
.forecolor=255
end with
If userform."Champsaisie"=2 then ......
Next x
Bien sur ce code est imaginaire et ne fonctionne pas mais c'est pour que compreniez un peu ce que je cherche (utiliser une boucle pour agir sur plusieurs objets dans un UF).
Merci de votre aide.
champs ?
peut-être que si tu utilisais les bons termes, tu pourrais trouver des aides : à Rome parle romain !
Si tes textbox ont un nom "sérialisable" tu peux utiliser la forme :
For X = 1 to 20
if me.controls("champ" & x) = 1 then
à condition que tes textbox aillent de champ1 à champ20
ou avec une formulation de ce type
Dim C As Control
For Each C In Me.Controls
If C.Name Like "champ*" then
if C = 1 Then
else
endif
End If
Next CComme on teste tous les controles, il faut différencier ceux qui commence par champ (attention à la casse) des autres et dans ceux-là, ceux qui sont égaux à 1 de ceux qui ne le sont pas
A+
Merci beaucoup pour la réponse, c'est exactement ce que je cherchais.
Désolé pour les termes employés !
@+++
Salut2xf a écrit :Merci beaucoup pour la réponse, c'est exactement ce que je cherchais.
Désolé pour les termes employés !
@+++
le bon emploi des bons termes est un avantage en clarté et précision.
Ils permettent de mieux comprendre le besoin et d'y adapter une réponse en économisant des postes.
Mais si on comprend, et qu'on arrive à répondre, comme c'est le but, tu peux employer les mots que tu veux. On n'est pas sectaire.
A+