Bonjour,
je me demandais si il était possible dans un formulaire,
ou j'aurais disons 15 combobox numéroter de 1 à 15 ,
si je pouvait initialiser au lancement du formulaire ceux ci avec une fonction next,
(tout ces objets prenant la meme valeur)
J'ai fait ceci mais ca ne passe pas a l'heure actuel :
Code:
Private Sub userform_initialize()
Dim MyCombo As Object
For i = 1 To 15
Set MyCombo = formulaire.combobox([i].Value).Object
Next i
End Sub
Re : Initialiser plusieurs objets d'un seul coup ?
Bonjour à tous,
Je te propose ceci :
Code:
Private Sub UserForm_Initialize()
Dim Cbx As Control
For Each Cbx In UserForm1.Controls
If Cbx.Name Like "Combobox*" Then
'Initialisation de Cbx
End If
Next Cbx
End Sub
Cependant je ne comprend pas bien ton initialisation...
Re : Initialiser plusieurs objets d'un seul coup ?
Merci à vous deux.
La proposition de renauder à fonctionner du premier coup et me convient mieux en fait.
Il va y avoir beaucoup de controls sur ce formulaire et j'ai peur que la boucle de tototiti fasse ramer le tout.
Par initialiser, je veux que dire que tout ces comboxbox prennent pour valeur une liste dynamiques (la même pour tous) et je ne connaissais pas la syntaxe, sans faire une procédure pour chaque cbox
Il y a peut être des choses plus simple, je me complique peut être, je débute
Merci a vous deux.
Re : Initialiser plusieurs objets d'un seul coup ?
Hello,
suite à votre aide, je me trouve confronter a un nouveau blocage
J'ai donc 15 combobox types de produits produits (nommer tipes1 jusqu'à tipes15) qui prennent toute la même valeur, qui se trouve être une liste de feuille grâce a la boucle ci-dessus.
En face de chacune de ces 15 combobox types produits, je voudrais avoir 15 combobox fournisseurs, qui dépendent du choix de la première.
Mon soucis est que les cb produits sont initialiser au démarrage du formulaire,
et pour les 15 cb fournisseur,je ne peux pas car les 15 premières n'ont pas de valeur sélectionner.
Il faut donc le faire grâce a un contrôle change ?
Cela nécessiterait d'en faire 15 (une pour chaque cb), ça me semble lourd a faire ?
Voila ce que j'ai fait :
Code:
Private Sub UserForm_Initialize()
'Choix du type de produit à ajouter (en fonction des catégories feuilles)
For i = 1 To 15
For n = 1 To 4
Controls("produit" & i).AddItem Sheets(n).Name
Next n
Next i
End Sub
Private Sub controls_change()
'creer la liste de distributeurs en fonction du types de produits
For i = 1 To 15
Var = Controls("produit" & i).Name
lisdistr = Controls("distributeur" & i)
Sheets(Var).Select
Range("A2").Select
nbenreg = Worksheets(Var).Range("a2").End(xlDown).Row
entree.listditr.Clear
While x <= nbenreg
entree.listdistr.AddItem Cells(i, 2).Value
x = x + 1
Wend
Next i
End Sub
Mais ca reste implacablement vide.
Je pense que mon erreur vient de l'utilisation de la fonction Controls ("combobox" & i), car je n'ai pas l'impression que mon choix dans types produits n'active la feuille désirer.
Re : Initialiser plusieurs objets d'un seul coup ?
Bonjour Rootdown,
Pour gérer des évènements de plusieurs contrôles d'un Userform à la fois, je crois qu'il faut passer par la création d'une classe. Je suis sûr que ce thème a déjà été abordé et je ne maîtrise pas les classes.
Tente une recherche...
Re : Initialiser plusieurs objets d'un seul coup ?
Oups, désolé Pierrejean, je te fais répéter (tu m'as déja dis ça)
Je l'avais préparer ce matin et j'ai oublié de le joindre, je viens juste de m'en rendre compte
Edit: j'ai modifier plein de grosse erreur, mais ca ne veut toujours pas.
Je pense que mes erreurs viennent de l'utilisation de Controls ( xxx).
Re : Initialiser plusieurs objets d'un seul coup ?
Merci, PierreJean,
en voyant l'ampleur du boulot avec les modules de classes,
je me suis orienté vers une solution quasi identique a ce que tu me propose.
Merci de ton aide.
Re : Initialiser plusieurs objets d'un seul coup ?
Bonjour,
je reviens sur ce petit projet qui a bien avancé mais je viens de me rendre compte d'un problème.
Dans la combobox, on peut choisir dans la liste un des onglets, mais on peut également entrer du texte, et quand ca ne correspond pas à l'onglet, ca bug, ce qui est tout à fait normal.
Mais comment gérer ce genre bug normal ?
Est il possible à l'apparition du bug de proposé de créer un nouvel onglet ?
Merci de votre aide.