En Vb6, il est très facile en mode création de créer un groupe de controles
de même nature par un simple copier-coller ( Ex: un form frmTest contenant
un controle txtTest. Un simple copier coller du controle txtTest dans
frmTest crée un groupe de controles, si on accepte, txtTest() nommés
txtTest(0), txtTest(1) ...)
Est-il possible de faire la même chose sous Excel dans un UserForm.
J'ai ainsi 15 controles textBox devant permettre la saisie de données
numériques et j'aurais voulu par ce biais pouvoir faire des boucles de
lecture pour des calculs sans avoir à utiliser les noms des contrôles mais
les indices du groupe.
J'ai essayé de nommer le 1er TextBox comme txtSortie(0) mais j'ai en retour
un message d'erreur : Nom d'objet incorrect
Si je le nomme txtSortie et fais un copier-coller, il n'est pas possible
de créer un groupe. Chaque copie étant indépendante et prenant par défaut
TextBox1, ..., TextBoxK
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JpPradier
Bonjour Eric
Tu peux utiliser Controls pour faire ta boucle : For i = 0 To 4 toto = UserForm1.Controls.Item(i).Name If Left(toto, 7) = "TextBox" Then UserForm1.Controls.Item(i).Value = i Next
Il me semble qu'il y a plus simple pour controler si c'est un textbox ou autre, mais je ne l'ai pas en tete.
j-p
Bonjour Eric
Tu peux utiliser Controls pour faire ta boucle :
For i = 0 To 4
toto = UserForm1.Controls.Item(i).Name
If Left(toto, 7) = "TextBox" Then UserForm1.Controls.Item(i).Value = i
Next
Il me semble qu'il y a plus simple pour controler si c'est un textbox ou autre, mais je ne l'ai pas
en tete.
Tu peux utiliser Controls pour faire ta boucle : For i = 0 To 4 toto = UserForm1.Controls.Item(i).Name If Left(toto, 7) = "TextBox" Then UserForm1.Controls.Item(i).Value = i Next
Il me semble qu'il y a plus simple pour controler si c'est un textbox ou autre, mais je ne l'ai pas en tete.
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
on 28/11/2004 13:18:
Bonjour,
En Vb6, il est très facile en mode création de créer un groupe de controles de même nature par un simple copier-coller ( Ex: un form frmTest contenant un controle txtTest. Un simple copier coller du controle txtTest dans frmTest crée un groupe de controles, si on accepte, txtTest() nommés txtTest(0), txtTest(1) ...)
Est-il possible de faire la même chose sous Excel dans un UserForm. J'ai ainsi 15 controles textBox devant permettre la saisie de données numériques et j'aurais voulu par ce biais pouvoir faire des boucles de lecture pour des calculs sans avoir à utiliser les noms des contrôles mais les indices du groupe.
J'ai essayé de nommer le 1er TextBox comme txtSortie(0) mais j'ai en retour un message d'erreur : Nom d'objet incorrect Si je le nomme txtSortie et fais un copier-coller, il n'est pas possible de créer un groupe. Chaque copie étant indépendante et prenant par défaut TextBox1, ..., TextBoxK
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
on 28/11/2004 13:18:
Bonjour,
En Vb6, il est très facile en mode création de créer un groupe de controles
de même nature par un simple copier-coller ( Ex: un form frmTest contenant
un controle txtTest. Un simple copier coller du controle txtTest dans
frmTest crée un groupe de controles, si on accepte, txtTest() nommés
txtTest(0), txtTest(1) ...)
Est-il possible de faire la même chose sous Excel dans un UserForm.
J'ai ainsi 15 controles textBox devant permettre la saisie de données
numériques et j'aurais voulu par ce biais pouvoir faire des boucles de
lecture pour des calculs sans avoir à utiliser les noms des contrôles mais
les indices du groupe.
J'ai essayé de nommer le 1er TextBox comme txtSortie(0) mais j'ai en retour
un message d'erreur : Nom d'objet incorrect
Si je le nomme txtSortie et fais un copier-coller, il n'est pas possible
de créer un groupe. Chaque copie étant indépendante et prenant par défaut
TextBox1, ..., TextBoxK
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
on 28/11/2004 13:18:
Bonjour,
En Vb6, il est très facile en mode création de créer un groupe de controles de même nature par un simple copier-coller ( Ex: un form frmTest contenant un controle txtTest. Un simple copier coller du controle txtTest dans frmTest crée un groupe de controles, si on accepte, txtTest() nommés txtTest(0), txtTest(1) ...)
Est-il possible de faire la même chose sous Excel dans un UserForm. J'ai ainsi 15 controles textBox devant permettre la saisie de données numériques et j'aurais voulu par ce biais pouvoir faire des boucles de lecture pour des calculs sans avoir à utiliser les noms des contrôles mais les indices du groupe.
J'ai essayé de nommer le 1er TextBox comme txtSortie(0) mais j'ai en retour un message d'erreur : Nom d'objet incorrect Si je le nomme txtSortie et fais un copier-coller, il n'est pas possible de créer un groupe. Chaque copie étant indépendante et prenant par défaut TextBox1, ..., TextBoxK
Merci d'avance
A+ Eric
Eric
Bonjour Jean-Paul,
Merci beaucoup de m'avoir répondu. Mon problème se situe au niveau de la création de ces contrôles sur l'UserForm en mode Design. Je voudrais créer des contrôles TextBox dont la propriété Name serait : TextBox(0), TextBox(1) ... plutôt que TextBox1, TextBox2 ... ce qui me permettrait de faire une boucle de calcul du genre :
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(TextBox(I).Value) Next I
Or je n'arrive pas à créer ce type de controles (sous VB6, on parle de groupe de contrôles). Je l'ai fait sans aucun problème en VB6 mais là sous Excel, je ne sais pas faire.
Aurais-tu une idée ?
Merci encore Eric
Bonjour Jean-Paul,
Merci beaucoup de m'avoir répondu.
Mon problème se situe au niveau de la création de ces contrôles sur
l'UserForm en mode Design.
Je voudrais créer des contrôles TextBox dont la propriété Name serait :
TextBox(0), TextBox(1) ... plutôt que TextBox1, TextBox2 ... ce qui me
permettrait de faire une boucle de calcul du genre :
Dim intI as Integer, dblCumul as Double
For I = 0 To 14
dbCumulÛlCumul+CDbl(TextBox(I).Value)
Next I
Or je n'arrive pas à créer ce type de controles (sous VB6, on parle de groupe
de contrôles). Je l'ai fait sans aucun problème en VB6 mais là sous Excel, je
ne sais pas faire.
Merci beaucoup de m'avoir répondu. Mon problème se situe au niveau de la création de ces contrôles sur l'UserForm en mode Design. Je voudrais créer des contrôles TextBox dont la propriété Name serait : TextBox(0), TextBox(1) ... plutôt que TextBox1, TextBox2 ... ce qui me permettrait de faire une boucle de calcul du genre :
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(TextBox(I).Value) Next I
Or je n'arrive pas à créer ce type de controles (sous VB6, on parle de groupe de contrôles). Je l'ai fait sans aucun problème en VB6 mais là sous Excel, je ne sais pas faire.
Aurais-tu une idée ?
Merci encore Eric
Eric
Bonjour Misange,
Merci beaucoup de m'avoir répondu. Mon problème se situe au niveau de la création de ces contrôles sur l'UserForm en mode Design. Je voudrais créer des contrôles TextBox dont la propriété Name serait : TextBox(0), TextBox(1) ... plutôt que TextBox1, TextBox2 ... ce qui me permettrait de faire une boucle de calcul du genre :
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(TextBox(I).Value) Next I
Or je n'arrive pas à créer ce type de controles (sous VB6, on parle de groupe de contrôles. Je l'ai fait sans aucun problème) mais là sous Excel, je ne sais pas faire.
Apparemment, la seule solution serait-elle de nommer chacun de ces controles avec un radical commun suivi d'un rang et dans le code faire :
Soient radical1, radical2, ...
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(Controls("radical" & I).Value) Next I
Cette méthode présente l'inconvénient de devoir nommer individuellement chaque controle, dès lors que le nombre devient important, et faire une procédure pour les renommer automatiquement pose probème dans la mesure où il existe sur la feuille (UF) d'autres contrôles du même type mais à usage différent.
Je suis persuadé (du moins en théorie) qu'il doit bien exister un moyen pour créer ce fameux groupe.
Je suis preneur si tu as une idée ou une autre façon de voir le problème
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Bonjour Misange,
Merci beaucoup de m'avoir répondu.
Mon problème se situe au niveau de la création de ces contrôles sur
l'UserForm en mode Design.
Je voudrais créer des contrôles TextBox dont la propriété Name serait :
TextBox(0), TextBox(1) ... plutôt que TextBox1, TextBox2 ... ce qui me
permettrait de faire une boucle de calcul du genre :
Dim intI as Integer, dblCumul as Double
For I = 0 To 14
dbCumulÛlCumul+CDbl(TextBox(I).Value)
Next I
Or je n'arrive pas à créer ce type de controles (sous VB6, on parle de
groupe de contrôles. Je l'ai fait sans aucun problème) mais là sous
Excel, je ne sais pas faire.
Apparemment, la seule solution serait-elle de nommer chacun de ces
controles avec un radical commun suivi d'un rang et dans le code faire :
Soient radical1, radical2, ...
Dim intI as Integer, dblCumul as Double
For I = 0 To 14
dbCumulÛlCumul+CDbl(Controls("radical" & I).Value)
Next I
Cette méthode présente l'inconvénient de devoir nommer individuellement
chaque controle, dès lors que le nombre devient important, et faire une
procédure pour les renommer automatiquement pose probème dans la mesure
où il existe sur la feuille (UF) d'autres contrôles du même type mais à
usage différent.
Je suis persuadé (du moins en théorie) qu'il doit bien exister un moyen
pour créer ce fameux groupe.
Je suis preneur si tu as une idée ou une autre façon de voir le problème
Merci beaucoup de m'avoir répondu. Mon problème se situe au niveau de la création de ces contrôles sur l'UserForm en mode Design. Je voudrais créer des contrôles TextBox dont la propriété Name serait : TextBox(0), TextBox(1) ... plutôt que TextBox1, TextBox2 ... ce qui me permettrait de faire une boucle de calcul du genre :
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(TextBox(I).Value) Next I
Or je n'arrive pas à créer ce type de controles (sous VB6, on parle de groupe de contrôles. Je l'ai fait sans aucun problème) mais là sous Excel, je ne sais pas faire.
Apparemment, la seule solution serait-elle de nommer chacun de ces controles avec un radical commun suivi d'un rang et dans le code faire :
Soient radical1, radical2, ...
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(Controls("radical" & I).Value) Next I
Cette méthode présente l'inconvénient de devoir nommer individuellement chaque controle, dès lors que le nombre devient important, et faire une procédure pour les renommer automatiquement pose probème dans la mesure où il existe sur la feuille (UF) d'autres contrôles du même type mais à usage différent.
Je suis persuadé (du moins en théorie) qu'il doit bien exister un moyen pour créer ce fameux groupe.
Je suis preneur si tu as une idée ou une autre façon de voir le problème
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Daniel.M
Éric,
AMA, la notion de tableau de contrôles n'existe pas en VBA :-(
Il y a la possibilité de mettre les contrôles dans un "Frame" et de boucler ainsi:
Private Sub Frame1_Click() Dim btn As Control For Each btn In Frame1.Controls Debug.Print btn.Name Next btn End Sub
Mais cela a le désavantage d'imposer un cadre géographique/physique (situé dans un Frame d'un UserForm) alors que tu ne veux qu'un lien logique entre ceux-ci.
Conclusion: Si l'ensemble de tes contrôles sont situés dans un coin spécial de ton UForm, tu pourrais les mettre dans un Frame. Sinon, il ne te reste, AMA, que le truc suggéré par Misange.
Salutations,
Daniel M.
"Eric" wrote in message news:
Bonjour Misange,
Merci beaucoup de m'avoir répondu. Mon problème se situe au niveau de la création de ces contrôles sur l'UserForm en mode Design. Je voudrais créer des contrôles TextBox dont la propriété Name serait : TextBox(0), TextBox(1) ... plutôt que TextBox1, TextBox2 ... ce qui me permettrait de faire une boucle de calcul du genre :
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(TextBox(I).Value) Next I
Or je n'arrive pas à créer ce type de controles (sous VB6, on parle de groupe de contrôles. Je l'ai fait sans aucun problème) mais là sous Excel, je ne sais pas faire.
Apparemment, la seule solution serait-elle de nommer chacun de ces controles avec un radical commun suivi d'un rang et dans le code faire :
Soient radical1, radical2, ...
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(Controls("radical" & I).Value) Next I
Cette méthode présente l'inconvénient de devoir nommer individuellement chaque controle, dès lors que le nombre devient important, et faire une procédure pour les renommer automatiquement pose probème dans la mesure où il existe sur la feuille (UF) d'autres contrôles du même type mais à usage différent.
Je suis persuadé (du moins en théorie) qu'il doit bien exister un moyen pour créer ce fameux groupe.
Je suis preneur si tu as une idée ou une autre façon de voir le problème
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Éric,
AMA, la notion de tableau de contrôles n'existe pas en VBA :-(
Il y a la possibilité de mettre les contrôles dans un "Frame" et de boucler
ainsi:
Private Sub Frame1_Click()
Dim btn As Control
For Each btn In Frame1.Controls
Debug.Print btn.Name
Next btn
End Sub
Mais cela a le désavantage d'imposer un cadre géographique/physique (situé dans
un Frame d'un UserForm) alors que tu ne veux qu'un lien logique entre ceux-ci.
Conclusion: Si l'ensemble de tes contrôles sont situés dans un coin spécial de
ton UForm, tu pourrais les mettre dans un Frame. Sinon, il ne te reste, AMA, que
le truc suggéré par Misange.
Salutations,
Daniel M.
"Eric" <f_framZZ@hotmail.com> wrote in message
news:XnF95AFAA8AEE1E2fframZZhotmailcom@207.46.248.16...
Bonjour Misange,
Merci beaucoup de m'avoir répondu.
Mon problème se situe au niveau de la création de ces contrôles sur
l'UserForm en mode Design.
Je voudrais créer des contrôles TextBox dont la propriété Name serait :
TextBox(0), TextBox(1) ... plutôt que TextBox1, TextBox2 ... ce qui me
permettrait de faire une boucle de calcul du genre :
Dim intI as Integer, dblCumul as Double
For I = 0 To 14
dbCumulÛlCumul+CDbl(TextBox(I).Value)
Next I
Or je n'arrive pas à créer ce type de controles (sous VB6, on parle de
groupe de contrôles. Je l'ai fait sans aucun problème) mais là sous
Excel, je ne sais pas faire.
Apparemment, la seule solution serait-elle de nommer chacun de ces
controles avec un radical commun suivi d'un rang et dans le code faire :
Soient radical1, radical2, ...
Dim intI as Integer, dblCumul as Double
For I = 0 To 14
dbCumulÛlCumul+CDbl(Controls("radical" & I).Value)
Next I
Cette méthode présente l'inconvénient de devoir nommer individuellement
chaque controle, dès lors que le nombre devient important, et faire une
procédure pour les renommer automatiquement pose probème dans la mesure
où il existe sur la feuille (UF) d'autres contrôles du même type mais à
usage différent.
Je suis persuadé (du moins en théorie) qu'il doit bien exister un moyen
pour créer ce fameux groupe.
Je suis preneur si tu as une idée ou une autre façon de voir le problème
AMA, la notion de tableau de contrôles n'existe pas en VBA :-(
Il y a la possibilité de mettre les contrôles dans un "Frame" et de boucler ainsi:
Private Sub Frame1_Click() Dim btn As Control For Each btn In Frame1.Controls Debug.Print btn.Name Next btn End Sub
Mais cela a le désavantage d'imposer un cadre géographique/physique (situé dans un Frame d'un UserForm) alors que tu ne veux qu'un lien logique entre ceux-ci.
Conclusion: Si l'ensemble de tes contrôles sont situés dans un coin spécial de ton UForm, tu pourrais les mettre dans un Frame. Sinon, il ne te reste, AMA, que le truc suggéré par Misange.
Salutations,
Daniel M.
"Eric" wrote in message news:
Bonjour Misange,
Merci beaucoup de m'avoir répondu. Mon problème se situe au niveau de la création de ces contrôles sur l'UserForm en mode Design. Je voudrais créer des contrôles TextBox dont la propriété Name serait : TextBox(0), TextBox(1) ... plutôt que TextBox1, TextBox2 ... ce qui me permettrait de faire une boucle de calcul du genre :
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(TextBox(I).Value) Next I
Or je n'arrive pas à créer ce type de controles (sous VB6, on parle de groupe de contrôles. Je l'ai fait sans aucun problème) mais là sous Excel, je ne sais pas faire.
Apparemment, la seule solution serait-elle de nommer chacun de ces controles avec un radical commun suivi d'un rang et dans le code faire :
Soient radical1, radical2, ...
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(Controls("radical" & I).Value) Next I
Cette méthode présente l'inconvénient de devoir nommer individuellement chaque controle, dès lors que le nombre devient important, et faire une procédure pour les renommer automatiquement pose probème dans la mesure où il existe sur la feuille (UF) d'autres contrôles du même type mais à usage différent.
Je suis persuadé (du moins en théorie) qu'il doit bien exister un moyen pour créer ce fameux groupe.
Je suis preneur si tu as une idée ou une autre façon de voir le problème
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Misange
Avec des textbox nommés txt1, txt2.... For I = 0 To 14 dbCumulÛlCumul+CDbl(controls("txt" & i).value) Next I
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
on 28/11/2004 16:45:
Bonjour Misange,
Merci beaucoup de m'avoir répondu. Mon problème se situe au niveau de la création de ces contrôles sur l'UserForm en mode Design. Je voudrais créer des contrôles TextBox dont la propriété Name serait : TextBox(0), TextBox(1) ... plutôt que TextBox1, TextBox2 ... ce qui me permettrait de faire une boucle de calcul du genre :
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(TextBox(I).Value) Next I
Or je n'arrive pas à créer ce type de controles (sous VB6, on parle de groupe de contrôles. Je l'ai fait sans aucun problème) mais là sous Excel, je ne sais pas faire.
Apparemment, la seule solution serait-elle de nommer chacun de ces controles avec un radical commun suivi d'un rang et dans le code faire :
Soient radical1, radical2, ...
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(Controls("radical" & I).Value) Next I
Cette méthode présente l'inconvénient de devoir nommer individuellement chaque controle, dès lors que le nombre devient important, et faire une procédure pour les renommer automatiquement pose probème dans la mesure où il existe sur la feuille (UF) d'autres contrôles du même type mais à usage différent.
Je suis persuadé (du moins en théorie) qu'il doit bien exister un moyen pour créer ce fameux groupe.
Je suis preneur si tu as une idée ou une autre façon de voir le problème
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Avec des textbox nommés txt1, txt2....
For I = 0 To 14
dbCumulÛlCumul+CDbl(controls("txt" & i).value)
Next I
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
on 28/11/2004 16:45:
Bonjour Misange,
Merci beaucoup de m'avoir répondu.
Mon problème se situe au niveau de la création de ces contrôles sur
l'UserForm en mode Design.
Je voudrais créer des contrôles TextBox dont la propriété Name serait :
TextBox(0), TextBox(1) ... plutôt que TextBox1, TextBox2 ... ce qui me
permettrait de faire une boucle de calcul du genre :
Dim intI as Integer, dblCumul as Double
For I = 0 To 14
dbCumulÛlCumul+CDbl(TextBox(I).Value)
Next I
Or je n'arrive pas à créer ce type de controles (sous VB6, on parle de
groupe de contrôles. Je l'ai fait sans aucun problème) mais là sous
Excel, je ne sais pas faire.
Apparemment, la seule solution serait-elle de nommer chacun de ces
controles avec un radical commun suivi d'un rang et dans le code faire :
Soient radical1, radical2, ...
Dim intI as Integer, dblCumul as Double
For I = 0 To 14
dbCumulÛlCumul+CDbl(Controls("radical" & I).Value)
Next I
Cette méthode présente l'inconvénient de devoir nommer individuellement
chaque controle, dès lors que le nombre devient important, et faire une
procédure pour les renommer automatiquement pose probème dans la mesure
où il existe sur la feuille (UF) d'autres contrôles du même type mais à
usage différent.
Je suis persuadé (du moins en théorie) qu'il doit bien exister un moyen
pour créer ce fameux groupe.
Je suis preneur si tu as une idée ou une autre façon de voir le problème
Avec des textbox nommés txt1, txt2.... For I = 0 To 14 dbCumulÛlCumul+CDbl(controls("txt" & i).value) Next I
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
on 28/11/2004 16:45:
Bonjour Misange,
Merci beaucoup de m'avoir répondu. Mon problème se situe au niveau de la création de ces contrôles sur l'UserForm en mode Design. Je voudrais créer des contrôles TextBox dont la propriété Name serait : TextBox(0), TextBox(1) ... plutôt que TextBox1, TextBox2 ... ce qui me permettrait de faire une boucle de calcul du genre :
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(TextBox(I).Value) Next I
Or je n'arrive pas à créer ce type de controles (sous VB6, on parle de groupe de contrôles. Je l'ai fait sans aucun problème) mais là sous Excel, je ne sais pas faire.
Apparemment, la seule solution serait-elle de nommer chacun de ces controles avec un radical commun suivi d'un rang et dans le code faire :
Soient radical1, radical2, ...
Dim intI as Integer, dblCumul as Double For I = 0 To 14 dbCumulÛlCumul+CDbl(Controls("radical" & I).Value) Next I
Cette méthode présente l'inconvénient de devoir nommer individuellement chaque controle, dès lors que le nombre devient important, et faire une procédure pour les renommer automatiquement pose probème dans la mesure où il existe sur la feuille (UF) d'autres contrôles du même type mais à usage différent.
Je suis persuadé (du moins en théorie) qu'il doit bien exister un moyen pour créer ce fameux groupe.
Je suis preneur si tu as une idée ou une autre façon de voir le problème
Voici une boucle que tu peux utiliser pour la création :
For i = 1 To 4 Set Myctrl = Userform1.Controls.Add("Forms.TextBox.1") Myctrl.Top = i * 20 Myctrl.Name = "Toto" & i Next
et pour renseigner ou lire les textbox :
For I = 0 To 14 dbCumulÛlCumul+CDbl(Userform1.controls("Toto" & i).Value)) Next I
j-p
Eric
re,
Compte tenu de la réponse de Daniel, je vais donc changer mon fusil d'épaule et tenir compte de vos propositions.
J'avais essayé de renommer des controles déjà créés par une procédure mais cela n'est pas possible. Ta réponse me permet de le réaliser car je n'avais pas une minute pensé à les créer directement en code.
Merci encore.
Eric
"JpPradier" écrivait news::
Voici une boucle que tu peux utiliser pour la création :
For i = 1 To 4 Set Myctrl = Userform1.Controls.Add("Forms.TextBox.1") Myctrl.Top = i * 20 Myctrl.Name = "Toto" & i Next
et pour renseigner ou lire les textbox :
For I = 0 To 14 dbCumulÛlCumul+CDbl(Userform1.controls("Toto" & i).Value)) Next I
j-p
re,
Compte tenu de la réponse de Daniel, je vais donc changer mon fusil
d'épaule et tenir compte de vos propositions.
J'avais essayé de renommer des controles déjà créés par une procédure mais
cela n'est pas possible. Ta réponse me permet de le réaliser car je n'avais
pas une minute pensé à les créer directement en code.
Compte tenu de la réponse de Daniel, je vais donc changer mon fusil d'épaule et tenir compte de vos propositions.
J'avais essayé de renommer des controles déjà créés par une procédure mais cela n'est pas possible. Ta réponse me permet de le réaliser car je n'avais pas une minute pensé à les créer directement en code.
Merci encore.
Eric
"JpPradier" écrivait news::
Voici une boucle que tu peux utiliser pour la création :
For i = 1 To 4 Set Myctrl = Userform1.Controls.Add("Forms.TextBox.1") Myctrl.Top = i * 20 Myctrl.Name = "Toto" & i Next
et pour renseigner ou lire les textbox :
For I = 0 To 14 dbCumulÛlCumul+CDbl(Userform1.controls("Toto" & i).Value)) Next I
j-p
Eric
Bonjour Daniel,
Merci bien pour cette réponse très précise. Je change donc de voie et suis les indications que, tous les 3, vous m'avaient données.
Cordialement Eric
"Daniel.M" écrivait news::
Éric,
AMA, la notion de tableau de contrôles n'existe pas en VBA :-(
Il y a la possibilité de mettre les contrôles dans un "Frame" et de boucler ainsi:
Private Sub Frame1_Click() Dim btn As Control For Each btn In Frame1.Controls Debug.Print btn.Name Next btn End Sub
Mais cela a le désavantage d'imposer un cadre géographique/physique (situé dans un Frame d'un UserForm) alors que tu ne veux qu'un lien logique entre ceux-ci.
Conclusion: Si l'ensemble de tes contrôles sont situés dans un coin spécial de ton UForm, tu pourrais les mettre dans un Frame. Sinon, il ne te reste, AMA, que le truc suggéré par Misange.
Salutations,
Daniel M.
Bonjour Daniel,
Merci bien pour cette réponse très précise.
Je change donc de voie et suis les indications que, tous les 3, vous
m'avaient données.
AMA, la notion de tableau de contrôles n'existe pas en VBA :-(
Il y a la possibilité de mettre les contrôles dans un "Frame" et de
boucler ainsi:
Private Sub Frame1_Click()
Dim btn As Control
For Each btn In Frame1.Controls
Debug.Print btn.Name
Next btn
End Sub
Mais cela a le désavantage d'imposer un cadre géographique/physique
(situé dans un Frame d'un UserForm) alors que tu ne veux qu'un lien
logique entre ceux-ci.
Conclusion: Si l'ensemble de tes contrôles sont situés dans un coin
spécial de ton UForm, tu pourrais les mettre dans un Frame. Sinon, il
ne te reste, AMA, que le truc suggéré par Misange.
Merci bien pour cette réponse très précise. Je change donc de voie et suis les indications que, tous les 3, vous m'avaient données.
Cordialement Eric
"Daniel.M" écrivait news::
Éric,
AMA, la notion de tableau de contrôles n'existe pas en VBA :-(
Il y a la possibilité de mettre les contrôles dans un "Frame" et de boucler ainsi:
Private Sub Frame1_Click() Dim btn As Control For Each btn In Frame1.Controls Debug.Print btn.Name Next btn End Sub
Mais cela a le désavantage d'imposer un cadre géographique/physique (situé dans un Frame d'un UserForm) alors que tu ne veux qu'un lien logique entre ceux-ci.
Conclusion: Si l'ensemble de tes contrôles sont situés dans un coin spécial de ton UForm, tu pourrais les mettre dans un Frame. Sinon, il ne te reste, AMA, que le truc suggéré par Misange.
Salutations,
Daniel M.
Eric
re,
Compte tenu de la réponse de Daniel, je vais donc changer mon fusil d'épaule et tenir compte de vos propositions.
Merci encore de la qualité de vos réponses et de la rapidité