Initialiser plusieurs objets d'un seul coup ?

Rootdown

XLDnaute Junior
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
 

tototiti2008

XLDnaute Barbatruc
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...
 

Rootdown

XLDnaute Junior
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 :rolleyes:
Merci a vous deux.
 

Rootdown

XLDnaute Junior
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.

Merci par avance de votre aide.
 

tototiti2008

XLDnaute Barbatruc
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... :)
 

Rootdown

XLDnaute Junior
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 :rolleyes:

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).
 

Pièces jointes

  • Testdistr.zip
    19.2 KB · Affichages: 29
  • Testdistr.zip
    19.2 KB · Affichages: 26
  • Testdistr.zip
    19.2 KB · Affichages: 30
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Initialiser plusieurs objets d'un seul coup ?

Re

A defaut de module de classe (pour lesquels je n'ai pas encore trouvé le courage d'en faire l'etude)
une proposition alternative
 

Pièces jointes

  • Testdistr.zip
    18 KB · Affichages: 48
  • Testdistr.zip
    18 KB · Affichages: 47
  • Testdistr.zip
    18 KB · Affichages: 76

Rootdown

XLDnaute Junior
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.
 

Discussions similaires

Réponses
3
Affichages
191

Statistiques des forums

Discussions
314 963
Messages
2 114 790
Membres
112 248
dernier inscrit
Alex84