Alimenter liste combobox

Bonjour à toutes et à tous,

Je n'arrive pas à alimenter une combobox avec un range de valeurs.

J'ai fait le code suivant mais qui ne marche pas (je me demande bien pourquoi) :

Sub ComboBox_Initialize()

Dim ligne As Integer
Dim ligne_fin As Integer
Dim col As Integer

ligne = Sheets("Résumé").Range("A:XFD").Find("Libellé crédit", lookat:=xlWhole).Offset(1, 0).Row
ligne_fin = Sheets("Résumé").Range("A:XFD").Find("Libellé crédit", lookat:=xlWhole).Offset(1, 0).End(xlDown).Row
col = Sheets("Résumé").Range("A:XFD").Find("Libellé crédit", lookat:=xlWhole).Column

ComboBox1.List = Sheets("résumé").Range(Cells(ligne, col + 1), Cells(ligne_fin, col + 1)).Value
ComboBox2.List = Sheets("résumé").Range(Cells(ligne, col + 2), Cells(ligne_fin, col + 2)).Value
ComboBox3.List = Sheets("résumé").Range(Cells(ligne, col + 3), Cells(ligne_fin, col + 3)).Value

End Sub

Voici le fichier et merci d'avance :

29codage.xlsm (56.02 Ko)

Bonjour, C'est quoi toutes ces lignes ? je suppose que celà correspond à un "mode interrogation" des opérations de l'onglet Résumé ?

- Pour commencer on ne fait pas Initialize sur un combobox mais sur le Userform.

Ensuite ou est l'interêt de déclarer autant de variable ? l'info de la combo 1 Actif vous ne savez pas qu'elle est en colonne B ?

La première ligne n'est-elle pas la ligne 3 ? On ne déclare pas des infos qu'on a déjà.

PS

Attention vous avez 3 combobox pour interroger .. vous devrez donc penser à chaque changement de sélection de l'une d'elle que celà entraine le changement de sélection des autres.

Private Sub UserForm_Initialize()
Dim Numligne As Long
Numligne = Sheets("Résumé").Range("A65536").End(xlUp).Row

ComboBox1.AddItem Sheets("résumé").Range("B3:B" & Numligne).Value
ComboBox2.AddItem Sheets("résumé").Range("C3:B" & Numligne).Value
ComboBox1.AddItem Sheets("résumé").Range("D3:B" & Numligne).Value

End Sub

et dans les évenements de combobox : exemple pour

Private Sub ComboBox1_Change()
Combobox2.ListIndex=Combobox1.ListIndex
Combobox3.ListIndex=Combobox1.ListIndex
End Sub

Merci pour votre retour.

Pour commencer on ne fait pas Initialize sur un combobox mais sur le Userform
==> Ah Merci !

Sub commandbutton1_click()

Unload ajout_credit

If OptionButton1.Value = True Then
ajout_credit2.Show

Else

MsgBox ("pas encore programmé, revenez plus tard")

End If

End Sub

J'ai essayé de mettre userform_initialize mais ça ne marche pas à cause du code ci-dessus je pense qui fait apparaître le userform en question (ajout_credit2.show)...

Ensuite ou est l'interêt de déclarer autant de variable ? l'info de la combo 1 Actif vous ne savez pas qu'elle est en colonne B ?
==> L'idée était d'écrire un code pour que le userform et le tableau fonctionnent, même si j'insère 4 colonnes avant A par exemple qui ferait décaler le tableau et donc la colonne B...

Par contre les 3 combobox sont indépendantes, un changement de sélection sur l'une n'entraine aucun changement sur les autres...

En fait, je souhaite juste qu'en lançant le userform, dans la combobox1 j'ai comme possibilités les valeurs que j'ai renseigné avant dans cette même combobox (si c'est la première fois, les possibilités seront donc vides).

Vous ne pouvez pas utiliser des combobox sur un onglet de saisie en les laissants indépandante ? excel ne sera pas si il doit modifier la ligne actuelle, ajouter une nouvelle ?

Vous semblez vouloir faire un userform qui interroge et qui saisie de nouvelles données en même temps. çà ne fonctionne pas comme çà.

Si votre userform est pour la saisie alors les listes de choix (indépendantes) doivent se trouver dans un autres onglet comme variable disponible.

Exemple dans un onglet Param colonne A liste des Prêteurs colonne B liste des emprunteurs Colonne C Liste des Actifs liés

Si vous n'avez aucune liste alors il n'y a aucune raison d'utiliser des combobox pour la saisie. De simple textbox suffisent.

image

La liste se construit au fur et à mesure avec les lignes successives. Vous avez un ou plusieurs actifs liés en colonne B, un ou plusieurs prêteurs en colonne C et un ou plusieurs emprunteurs en colonne D. Je saisis la nouvelle donnée dans la combobox (qui peut etre identique ou différentes d'une des données figurant dans la liste) et la donnée sera retranscrite dans la colonne adéquate sur une nouvelle ligne... je ne sais pas si j'arrive à être clair...

image

Voilà ce que je souhaite, ca a l'air de marcher avec "userform_activate"....

Maintenant il ne me reste plus qu'à éviter les doublons dans la liste...

Rechercher des sujets similaires à "alimenter liste combobox"