Creer une boucle pour lire le contenu de textbox [Résolu]

Signaler
Messages postés
45
Date d'inscription
lundi 1 mai 2000
Statut
Membre
Dernière intervention
25 février 2012
-
cs_Byrong
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013
-
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

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
28
Salut,

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

__________
  Kenji
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
21
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 ...
Messages postés
45
Date d'inscription
lundi 1 mai 2000
Statut
Membre
Dernière intervention
25 février 2012

les boites s'appellent textbox1 textbox2 etc
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
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

 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
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

 
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
28
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
Messages postés
45
Date d'inscription
lundi 1 mai 2000
Statut
Membre
Dernière intervention
25 février 2012

Nickel Charles c'est exactement ce que je cherchai.
Merci
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013

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?
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
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 **
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013

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
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Oki...^^
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013

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