[VBA] Procédure pour plusieurs UserForm
Résolu
ksa
-
ksa -
ksa -
Bonjour,
je souhaiterais créer une procédure valable pour plusieurs UserForms permettant d'ajouter des éléments dans des combobox. Je ne peux pas passer un userform en variable ? Je pensais à quelque chose dans ce genre mais cela ne fonctionne pas:
monformulaire.Controls("ComboBox" & a).AddItem
ou
UserForm(k).Controls("ComboBox" & a).AddItem
sachant que le :
UserForm1.Controls("ComboBox" & a).AddItem
fonctionne très bien.
Quelqu'un saurait il m'aider ?
D'avance merci.
je souhaiterais créer une procédure valable pour plusieurs UserForms permettant d'ajouter des éléments dans des combobox. Je ne peux pas passer un userform en variable ? Je pensais à quelque chose dans ce genre mais cela ne fonctionne pas:
monformulaire.Controls("ComboBox" & a).AddItem
ou
UserForm(k).Controls("ComboBox" & a).AddItem
sachant que le :
UserForm1.Controls("ComboBox" & a).AddItem
fonctionne très bien.
Quelqu'un saurait il m'aider ?
D'avance merci.
6 réponses
-
Autant pour moi,
la réponse était simplement:
sub toto(formulaire,a,b)
formulaire.Controls("ComboBox" & b).AddItem i
end sub
avec appel (situé sur UserForm1):
Call UserForm2.toto(UserForm1, 1, 2)
(on passe le formulaire, le numéro des combobox utilisées en paramètre)
Merci pour votre aide en tous les cas. -
Bonsoir,
essaie comme ça :
Sub appel()
Call test(UserForm1)
Call test(UserForm2)
End Sub
Sub test(form)
form.ComboBox1.AddItem "toto"
End Sub
en nommant ton combobox ComboBox1 dans tous les formulaires.
eric -
Merci pour ta réponse,
le hic c'est que j'utilise 2 combobox par userform qui n'ont pas les meme noms, je les passe donc en parametre comme le nom du formulaire, mais cela ne fonctionne pas -
Bonjour,
comme ça peut-etre alors :
For Each Control In UserForm1.Controls
If Control.Name = "ComboBox1" Or Control.Name = "ComboBox2" Then
'...additem
End If
Next Control
ou tu utilises la propriété tag des controles concernés et tu testes dessus...
eric -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour, Bonjour Eric,
Passe ton combo directement en paramètre, le parent sera pris en compte,Sub Test( C as ComboBox) C.Additem.....
A mettre dans un module général (Module1 par exemple).
Exemple d'appel..
Test LeNomDuCombo
A+
-
Merci pour votre aide,
Sachant que cela: form.ComboBox1.AddItem "toto" (form étant une variable passée en paramètre) fonctionne parfaitment, il n'est pas possible de faire quelque chose du genre:
form.ComboBox(a).AddItem "toto" avec form et a passés en paramètre ?
cela me parait étonnant car relativement simple et logique...
Quelqu'un aurait il une réponse (positive ou négative^^) ?