Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Initialiser TextBox

6 réponses
Avatar
JPMonnier
Bonjour,
J'ai un Userform avec plusieurs Frame,
Je souhaiterais initialiser 20 textbox par une boucle plutot que faire
Me.TextBox1 ="" (20 fois)
Est-il possible par une boucle "style For Each" d'éviter de les initialiser
1 par 1
J'ai ce cas dans plusieurs Frame
Merci d'avance
--
Cordialement
jpmonnier-no-spam@neuf.fr

6 réponses

Avatar
FFO
Salut à toi

Je tenterai d'utiliser ce type de boucle :

For i = 1 To 20
Liste = TextBox & i
Me.Liste = ""
Next

Mais je ne sais pas si celà fonctionne

Fais des essais et dis moi !!!!
Avatar
lSteph
Bonjour,

un exemple extrait ...donc à adapter (ici j'ai un spinbutton qui doit
me permettre ensuite le défilement)
A noter que pour le bon fonctionnement les contrôles sont ordonnés et
ont gardé leur nom générique :

Private Sub UserForm_Initialize()
Dim i As Byte
Frame2.Caption = SpinButton1
For i = 1 To 30
Me.Controls("Label" & i).Caption = Feuil1.Cells(1, i)
Me.Controls("TextBox" & i) = Feuil1.Cells(SpinButton1, i)
Next
End Sub


'lSteph


On 18 juil, 07:20, "JPMonnier" wrote:
Bonjour,
J'ai un Userform avec plusieurs Frame,
Je souhaiterais initialiser 20 textbox par une boucle plutot que faire
Me.TextBox1 ="" (20 fois)
Est-il possible par une boucle "style For Each" d'éviter de les initial iser
1 par 1
J'ai ce cas dans plusieurs Frame
Merci d'avance
--
Cordialement



Avatar
JPMonnier
Salut FFO
Désolé ça ne va pas : Mon pb est que mes Name de textbox sont PBSF, PBSG,
PTSF,PTSG etc (Mnémonique pour m'y retouver)
Donc je souhaiterais les passer en variable soit :
Me.Variable (Variable = mes noms de TextBox)
Je ne sais pas si c'est faisable !
Merci
--
Cordialement




"FFO" a écrit dans le message de
news:
Salut à toi

Je tenterai d'utiliser ce type de boucle :

For i = 1 To 20
Liste = TextBox & i
Me.Liste = ""
Next

Mais je ne sais pas si celà fonctionne

Fais des essais et dis moi !!!!


Avatar
JPMonnier
Salut lSteph,
Merci pour ta réponse
je vois que mes nomns n'étant pas les noms génériques, ceci ne peut
fonctionner
Je ne sais pas si il y a une solution
Merci
--
Cordialement


"lSteph" a écrit dans le message de
news:
Bonjour,

un exemple extrait ...donc à adapter (ici j'ai un spinbutton qui doit
me permettre ensuite le défilement)
A noter que pour le bon fonctionnement les contrôles sont ordonnés et
ont gardé leur nom générique :

Private Sub UserForm_Initialize()
Dim i As Byte
Frame2.Caption = SpinButton1
For i = 1 To 30
Me.Controls("Label" & i).Caption = Feuil1.Cells(1, i)
Me.Controls("TextBox" & i) = Feuil1.Cells(SpinButton1, i)
Next
End Sub


'lSteph


On 18 juil, 07:20, "JPMonnier" wrote:
Bonjour,
J'ai un Userform avec plusieurs Frame,
Je souhaiterais initialiser 20 textbox par une boucle plutot que faire
Me.TextBox1 ="" (20 fois)
Est-il possible par une boucle "style For Each" d'éviter de les
initialiser
1 par 1
J'ai ce cas dans plusieurs Frame
Merci d'avance
--
Cordialement



Avatar
LSteph
Private Sub UserForm_Initialize()
Dim ctl As Control, i As Byte
i = 0
For Each ctl In Me.Controls
If TypeOf ctl Is msforms.TextBox Then
i = i + 1
ctl.Text = Cells(1, i)
End If
Next
End Sub

':-)

JPMonnier a écrit :
Salut lSteph,
Merci pour ta réponse
je vois que mes nomns n'étant pas les noms génériques, ceci ne peut
fonctionner
Je ne sais pas si il y a une solution
Merci


Avatar
JPMonnier
Merci infiniment LlSteph c'est nickel
j'ai remplacé ctl.Text = Cells(1, i)
par ctl.Text = "", qui me met toutes mes textbox à "", ce que je voulais
C'est le top !
J'en apprend tous les jours ici !
Plus je pose des questions sur ce forum, plus je me rend compte que je suis
tout petit !
Si j'avais eu la chance d'avoir un tel forum quand j'étais en activité,
c'est moi qui répondrais aus posts aujourd'hui
Si je reprenais tout ce que j'ai developpé en VBA, la longueur de mes
procédures serait divisée par 10 !!
Chapeau et encore merci pour le partage des connaissances
Jean Pierre
--
Cordialement

"LSteph" a écrit dans le message de
news:%
Private Sub UserForm_Initialize()
Dim ctl As Control, i As Byte
i = 0
For Each ctl In Me.Controls
If TypeOf ctl Is msforms.TextBox Then
i = i + 1
ctl.Text = Cells(1, i)
End If
Next
End Sub

':-)

JPMonnier a écrit :
Salut lSteph,
Merci pour ta réponse
je vois que mes nomns n'étant pas les noms génériques, ceci ne peut
fonctionner
Je ne sais pas si il y a une solution
Merci