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

Indexation d'objet sous une Macro VB

4 réponses
Avatar
Frédéric F
Bonjour,

Je cherche =E0 indexer les "Textbox" d'une "UserForm"=20
appartenant =E0 une Macro VB; le but etant bien sur de=20
pouvoir, dans mon programme, faire r=E9f=E9rence =E0=20
ces "Textbox" sous la forme: Textbox(i) et non: Textbox1,=20
Textbox2....ce qui me permettrait de simplifier grandement=20
mon programme.
Je sais qu'il est possible de le faire avec Visual Basic=20
mais avec les macros VB, je n'y arrive pas. Est-ce normal?

Je vous remercie d'avance pour toute aide.

Bonne journ=E9e =E0 tous.

Fred.

4 réponses

Avatar
Nicolas B.
Salut,

Tu peux conserver come noms 'Textbox1', Textbox2'...
Ainsi, tu peux alors faire une fonction qui t'indexe les textbox :

Function Tb_Index(Ind As Long) As Control
Set Tb_Index = UserForm1.Controls("TextBox" & Ind)
End Function


A+
--
Nicolas B.


Bonjour,

Je cherche à indexer les "Textbox" d'une "UserForm"
appartenant à une Macro VB; le but etant bien sur de
pouvoir, dans mon programme, faire référence à
ces "Textbox" sous la forme: Textbox(i) et non: Textbox1,
Textbox2....ce qui me permettrait de simplifier grandement
mon programme.
Je sais qu'il est possible de le faire avec Visual Basic
mais avec les macros VB, je n'y arrive pas. Est-ce normal?

Je vous remercie d'avance pour toute aide.

Bonne journée à tous.

Fred.


Avatar
Misange
En complément de la réponse de Nicolas, sur excelabo, page contrôles, tu
trouveras comment boucler sur les contrôles pour leur appliquer un même
traitement comme les remettre à 0.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


le 08/04/2004 11:38:
Bonjour,

Je cherche à indexer les "Textbox" d'une "UserForm"
appartenant à une Macro VB; le but etant bien sur de
pouvoir, dans mon programme, faire référence à
ces "Textbox" sous la forme: Textbox(i) et non: Textbox1,
Textbox2....ce qui me permettrait de simplifier grandement
mon programme.
Je sais qu'il est possible de le faire avec Visual Basic
mais avec les macros VB, je n'y arrive pas. Est-ce normal?

Je vous remercie d'avance pour toute aide.

Bonne journée à tous.

Fred.



Avatar
fabienne.HUIEZ
voici un petit bout de code à adapter à ton cas.
C'est issu de ACCESS. En Excel la propriété ControlType
n'existe pas. On recherche directement sur .Name.

Attribution à des zones de texte de valeurs contenues dans
un tableau dynamique

dim Ctrl as Control

For i=0 to Ubound(selectionne)
entree=selectionne(i)
For Each Ctrl In Me.Controls
If Ctrl.ControlType¬TextBox Then
If Ctrl.Name="TXTan" & i Then
Ctrl.Value=entree
End If
End If
Next Ctrl
Next i

cordialement
fabienne


-----Message d'origine-----
Bonjour,

Je cherche à indexer les "Textbox" d'une "UserForm"
appartenant à une Macro VB; le but etant bien sur de
pouvoir, dans mon programme, faire référence à
ces "Textbox" sous la forme: Textbox(i) et non: Textbox1,
Textbox2....ce qui me permettrait de simplifier
grandement

mon programme.
Je sais qu'il est possible de le faire avec Visual Basic
mais avec les macros VB, je n'y arrive pas. Est-ce normal?

Je vous remercie d'avance pour toute aide.

Bonne journée à tous.

Fred.

.



Avatar
Fred
Merci Nico pour ton aide, ca marche nickel et ca me fait
gagner un temps monstre.
A+.
Fred

-----Message d'origine-----
Salut,

Tu peux conserver come noms 'Textbox1', Textbox2'...
Ainsi, tu peux alors faire une fonction qui t'indexe les
textbox :


Function Tb_Index(Ind As Long) As Control
Set Tb_Index = UserForm1.Controls("TextBox" & Ind)
End Function


A+
--
Nicolas B.


Bonjour,

Je cherche à indexer les "Textbox" d'une "UserForm"
appartenant à une Macro VB; le but etant bien sur de
pouvoir, dans mon programme, faire référence à
ces "Textbox" sous la forme: Textbox(i) et non:
Textbox1,


Textbox2....ce qui me permettrait de simplifier
grandement


mon programme.
Je sais qu'il est possible de le faire avec Visual Basic
mais avec les macros VB, je n'y arrive pas. Est-ce
normal?



Je vous remercie d'avance pour toute aide.

Bonne journée à tous.

Fred.



.