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.

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.

Salut

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 C

A+

Gorfael 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.

Salut

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 C

Comme 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 !

@+++

2xf a écrit :

Merci beaucoup pour la réponse, c'est exactement ce que je cherchais.

Désolé pour les termes employés !

@+++

Salut

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+

Rechercher des sujets similaires à "userform textbox"