Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Incrément d'une combobox

A

Antoine

Guest
Salut à tous,

Ayant jusqu'à 13 combobox dans une userform (VBA), j'ai imaginé une boucle pour les initialiser les unes après les autres en économisant la taille de la procédure.
ça donne quelque chose dans le style (les listes sont dans 4 colonnes disfférentes, sachant que 10 des combobox se chargent avec la même liste)

n = 1
Col = 1
Do Until n = 13
i = 38
Do Until .Cells(i, Col).Value = ""
i = i + 1
Loop
UserForm4.ComboBox1.List() = .Range(Cells(38, Col), Cells(i - 1, Col))
n = n + 1
If n < 5 Then Col = Col + 1
Loop

Le problème est maintenant d'incrémenter Combobox en fonction de n (de 1 à 13). Or il semble que UserForm4.ComboBoxn.List() ne veuille pas fonctionner...

Quelqu'un a-t'il une (super) idée ???

Merci d'avance
 
@

@+Thierry

Guest
=> Mini DEMO Initialisation de ListBox en Masse !

Bonjour Antoine

J'ai un peu regardé ton problème, disons que je l'ai survolé car il aurait été préférable d'avoir un fichier exemple, car je ne me suis pas reconstruit une feuille démarrant à la ligne 38 sur X Colonne etc...

Disons que dans la démo ci-joint je montre une méthode d'initialisation de ListBox (ou leur cousine la ComboBox, c'est idem dans ce cas)...

Peut-être celà pourra t'inspirer. Par contre moi je fais tout en tableau indéxé séquentiellement. Avec une double boucle loop, il faudrait construire une array dynamique aussi, donc faut voir si celà peut s'adapter à ta feuille de données.

Bon appétit
@+Thierry
 

Pièces jointes

  • MassListBox.zip
    15.3 KB · Affichages: 36
  • MassListBox.zip
    15.3 KB · Affichages: 27
  • MassListBox.zip
    15.3 KB · Affichages: 34
A

Antoine

Guest
Merci.
Effectivement, ta démo marche très bien .... mais je n'ai pas accès à la source. VBA ne m'autorise pas à afficher le projet car il est vérouillé.

Je ne vois donc tjrs pas comment tu fais.

Peux-tu me donner un source non vérouillé?

Merci d'avance
Antoine
 
@

@+Thierry

Guest
Re: => Mini DEMO Initialisation de ListBox en Masse !

SAlut Antoine, Bonjour le Forum

Aucune de mes démos ne sont protégées, (sinon je ne vois pas l'utilité de les mettre sur un forum public)

Es-tu sous Mac ?, car je soupsonne que ce soit encore cet éternel problème de SelfCert...

Bonne journée
@+Thierry
 
S

STéphane

Guest
Re: => Mini DEMO Initialisation de ListBox en Masse !

Antoine

tu dois lire ce classeur avec une version antérieure à celle qu'a utilisé Thierry pour créer le classeur.


voilà
bye
stephane
 
@

@+Thierry

Guest
Re: => Mini DEMO Initialisation de ListBox en Masse !

Bonjour

Ci-joint le même classeur Non-Signé, pour voir si celà te permet d'accéder aux Codes, car comme le dit STéphane je suppose que ton problème vient de ta version d'Excel...

Antoine, si çà marche, merci de me confirmer ta Version d'Excel (et si Mac ou pas ?)

Bon Dimanche
@+Thierry
 

Pièces jointes

  • MassListBox.zip
    14.6 KB · Affichages: 36
  • MassListBox.zip
    14.6 KB · Affichages: 36
  • MassListBox.zip
    14.6 KB · Affichages: 35
A

Antoine

Guest
Oui, maintenant j'arrive à lire les codes.
Je suis sous PC et j'utilise Excel 97 SR2 (on ne rigole pas... c'est vieux, mais ça marche très bien sous win98 SE...)

Je n'ai pas encore eu le temps de regarder tes lignes de codes (trop de boulot, sic !), mais je vais regarder ça de prêt.

Autre chose dans le même style... Si j'ai autant de contrôle à configurer, il arrive un moment ou il faut que je crée une procedure pour chacun d'entre eux pour un evênement du type click ou after_update (par ex). Il faudrait donc x procedures identiques, où seul le numéro du contrôl ne change et éventuellement deux ou trois adresses de cellules. Ne peut-on pas imaginer une procédure identique pour tous les mêmes types de contrôles, en passant simplement un argument qui pointerais sur le bon contrôl?

Merci beaucoup à tous et je vous tiens au jus.

Antoine
 

Discussions similaires

Réponses
5
Affichages
405
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…