Creer une boucle pour lire le contenu de textbox

Résolu
jraynald
Messages postés
45
Date d'inscription
lundi 1 mai 2000
Statut
Membre
Dernière intervention
25 février 2012
- 6 janv. 2008 à 14:39
cs_Byrong
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013
- 1 mai 2009 à 20:25
Bonjour
J'ai une form avec une dizaine de textbox et je désire par une boucle allez lire le contenu des textbox de 2 à 9 par exemple
j'ai fait une boucle du style
for i=2 to 9
lecture=textbox(i).text
next i
mais ça ne fonctionne pas

12 réponses

Charles Racaud
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
6 janv. 2008 à 14:51
Salut,

Tes TexteBoxs sont-elles indexées ? (Propriété Index)

__________
  Kenji
3
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
6 janv. 2008 à 15:07
Salut kenji;

pas de groupes de contrôles indexés sous VBA, à ma connaissance....
Nous sommes ici dans :
Thèmes / Visual Basic 6 / Langages dérivés / VBA
en conséquence, cette ligne :
lecture=textbox(i).text
(pêchée je ne sais où)
ne saurait correspondre à une syntaxe VBA !!!


Il y a une solution avec la collection Controls, mais comme on ne sait pas comment il a nommé ses tectboxes, on attend ses précisions, ma foi ...
3
jraynald
Messages postés
45
Date d'inscription
lundi 1 mai 2000
Statut
Membre
Dernière intervention
25 février 2012

6 janv. 2008 à 15:20
les boites s'appellent textbox1 textbox2 etc
3
cs_Exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
6 janv. 2008 à 15:31
Salut,

Quel intérêt de remplir une variable(je suppose de type String) 8 fois, si à chaque lecture il efface l'ancienne valeur..???

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
6 janv. 2008 à 15:41
Re,

Essayons cela :

Dim oCtrl As control

For Each oCtrl In Me
       If TypeOf oCtrl Is TextBox Then          If Not oCtrl.Name TextBox1 And oCtrl.Name TextBox2 Then
             ' Tu fais ce que tu veux ici
          End If
       End If
Next oCtrl 
             

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
3
Charles Racaud
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
6 janv. 2008 à 16:16
En vba ..., j'avais pas fait attention
Donc, tu peux faire ainsi :
Dim i As Integer
For i = 2 To 9
  lecture = Me.Controls("TextBox" & i).Text
Next i, ----
(Coloration syntaxique automatique par Kenji)

__________
  Kenji
3
jraynald
Messages postés
45
Date d'inscription
lundi 1 mai 2000
Statut
Membre
Dernière intervention
25 février 2012

6 janv. 2008 à 16:23
Nickel Charles c'est exactement ce que je cherchai.
Merci
3
cs_Byrong
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013

1 mai 2009 à 19:25
Bonjour

moi j'aimerais faire a peut pret le meme que cela mais changer la couleur de fond...
        Dim I as integer
        Dim Tableau(,)
       
        ...(je tape pas tout le code car c'est tres long )
        
        For i = 0 To Grilles - 1
                name = "TextBox0" & i & Tableau(i, j)
                Me.Controls(name).backcolor = Color.Red
        Next


Ca me met un message d'erreur "La référence d'objet n'est pas définie à une instance d'un objet."
c'est le "Me" qui pose problème je crois

Pouvez vous m aider?
0
cs_Exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
1 mai 2009 à 20:14
Salut,

Je pense que c'est plus tôt ton Name qui pose problème...la recontruction du nom de ton TextBox.

++




A+
Exploreur

 Linux a un noyau, Windows un pépin
    ** http://exploreur1.labrute.fr **
0
cs_Byrong
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013

1 mai 2009 à 20:15
j ai fait un msgbox afin qu'il affiche le nom et le nom que le msgbox affiche correspond bien au nom du textbox

voila pourquoi je ne comprends pas d ou vient le souci
0
cs_Exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
1 mai 2009 à 20:22
Oki...^^
0
cs_Byrong
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013

1 mai 2009 à 20:25
j ai fait ceci pour avoir les etapes

        For i = 0 To Grilles - 1
            For j = 0 To 4
                nbr = Tableau(i, j)
                num = ((i + 1) * 100) + nbr
                MsgBox(num)
                test = ("TextBox" & num)
                MsgBox(test)
                Me.Controls(test).BackColor = Color.Red
            Next j
        Next i

ca m'affifche bien le nom de la textbox mais ca ne change pas le backcolor
0