Remplissage liste déroulante combobox avec plage dynamique

fredou6475

XLDnaute Nouveau
Bonjour

Après de longues recherches qui me mènent vers des choses approchantes mais non ce que je cherche je me retourne vers vous.

version 2003 d'excel

J'ai un classeur avec plusieurs feuilles.

Sur la feuille 1 se trouve (entre autre) 3 colonnes dans lesquelles des personnes y rentrent des données on ne connait donc pas à l'avance le nombre de lignes de chaque colonne. le nombre de colonne est pour le moment de 3 mais il n'est pas impossible qu'il augmente à l'avenir donc j'aimerais gérer ces lignes et colonnes avec deux variable i,j.

Je souhaite parcourir ces lignes et colonnes jusqu'à ce que tout soit parcouru et stocké dans 3 combobox différentes (1 par colonne) mais le hic c'est que ces combobox sont sur une autre feuille.

Ce remplissage de liste déroulante s'effectuera lorsque l'utilisateur appuiera sur un bouton importé dans ma feuille depuis la barre d'outil "boite à outil controle"

Bref voici le début de l'idée mais comme mes connaissances sont limitées soyez indulgent.

Question subsidiaire c'est combobox se place comment dans le modèle objet de vba?
elles appartiennent à quelle classe?


voici le code que j'avais imaginé en bon débutant...
Code:
Private Sub CommandButton2_Click()

Dim i, j As Integer
i = 1
j = 20

Do While Sheets(1).Cells(i, j).Value <> ""
           
        ComboBox1.Value = Cells(i, j)
        ComboBox2.Value = Cells(i, j + 1)
        ComboBox3.Value = Cells(i, j + 2)
               
        Loop

End Sub

par avance merci

ps: si vous connaissez un lien ou un pdf détaillant le modèle objet d'excel vba qui me permettrait de connaitre les objets leurs méthodes et propriétés, et la manière de les utiliser je suis preneur.
 

fredou6475

XLDnaute Nouveau
Re : Remplissage liste déroulante combobox avec plage dynamique

en fait si je devais ajouter une colonne j'ajouterai manuellement une autre combobox

donc on peut peut être faire l'économie du compteur de colonne même si j'aimerais bien voir comment ça se passe avec 2 variables (une pour ligne et l'autre pour colonne)

ceci dit je ne souhaite pas ajouter de combobox via vba je le ferai manuellement si c'était nécessaire
 

fredou6475

XLDnaute Nouveau
Re : Remplissage liste déroulante combobox avec plage dynamique

je sens que je suis pas loin mais ça ne marche pas...

Code:
Private Sub CommandButton5_Click()

'Initialiser les listes déroulantes

Dim i As Integer
i = 1

Do While (Range("T" & i).Value) <> ""

   With Worksheets("Saisie Alignement Local")
               .ComboBox1.AddItem Worksheets(2).Range("T" & i).Value
   End With

    i = i + 1

Loop



End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : Remplissage liste déroulante combobox avec plage dynamique

Re,

ça ne marche pas ?
ça a l'air pas mal pourtant

un autre essai avec List
 

Pièces jointes

  • Classeur1.xls
    29 KB · Affichages: 357
  • Classeur1.xls
    29 KB · Affichages: 351
  • Classeur1.xls
    29 KB · Affichages: 371

fredou6475

XLDnaute Nouveau
Re : Remplissage liste déroulante combobox avec plage dynamique

en fait je ne sais plus si ça marche car ma liste contient des trucs mais je sais plus si c ce code qui l'a rentré ou pas

comment vidé la liste avec une boucle du même genre?
 

fredou6475

XLDnaute Nouveau
Re : Remplissage liste déroulante combobox avec plage dynamique

finalement ça marche mon truc lol

pendant un moment ça marchait plus car ma ligne était en commentaire mdr

je suis crevé depuis le temps que je suis dessus

je reprendrai à tête reposée et regarderai votre fichier merci

si vous pouvez voir comment vider la list avec remove.item..

merci
 

Chool

XLDnaute Nouveau
Re : Remplissage liste déroulante combobox avec plage dynamique

Bonjour,

Mon problème est un peu différent et aussi je pense plus simple. Quelqu'un pourrait-il m'expliquer ce quelque chose qui parait évident à beaucoup de monde sur ce forum ?

Lorsqu'on insère un combobox dans un userform et qu'on veut remplir les différentes options du combobox sans les extraire d'une feuille excel, il parait qu'on peut les entrer grâce a AddItem. Or cette instruction doit être placé dans une fonction ou une procédure (je ne fais pas très bien la différence en VBA) qui porterait le NomDuUserform_Initialize(). Le problème est que je sais pas du tout ou placer cette procédure.

J'ai essayé de la mettre dans Feuil1, dans un module mais à chaque fois j'ai le message d'erreur "Sub ou Function non définie".
Est ce que cela peut venir du fait que j'ai inventé cette procédure et qu'elle ne s'est pas crée automatiquement comme lorsqu'on met du code sur un bouton : NomDuBouton_Click() ?

Je vous mets un fichier qui illustre ce que je viens de dire où ma procédure sensé initialiser les options du combobox est dans feuil1 avec le programme principal.

Merci par avance ça m'aiderait beaucoup,

Chool
 

Pièces jointes

  • essaiscombo.xlsm
    17 KB · Affichages: 219
  • essaiscombo.xlsm
    17 KB · Affichages: 232
  • essaiscombo.xlsm
    17 KB · Affichages: 233

JOZZ

XLDnaute Junior
Re : Remplissage liste déroulante combobox avec plage dynamique

Pour Fredou6475

Si j'ai bien compris !!!

Jozz
 

Pièces jointes

  • Classeur1+.xls
    40 KB · Affichages: 105
  • Classeur1+.xls
    40 KB · Affichages: 108
  • Classeur1+.xls
    40 KB · Affichages: 145

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 171
Membres
103 152
dernier inscrit
Karibu