Code VBA pour REMPLISSAGE LISTBOX

Bonjour à tous,

J'ai trouvé récemment, sur ce forum, le code suivant pour l'enrichissement d'une LISTBOX par rapport à un fichier excel.

Je comprend le fonctionnement mais ce que je ne m'explique pas c'est que je ne peux pas visualiser dans la LISTBOX un nombre de colonnes au-delà de 9

Le message, image ci-jointe, s'affiche après le choix dans la liste déroulante dès lors que je modifie le code au-delà de 9 à la ligne For J = 1 To

Extrait du code :

Private Sub Combobox1_Change() 'au changement dans la ComboBox1
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)

With Me.ListBox1 'prend en compte la ListBox1
    .Clear 'efface le contenu
    For I = 1 To UBound(TC, 1) 'boucle 1 : sur toutes les lignes du tableau TC (en partant de la 1ère ligne)
        If TC(I, 1) = Me.ComboBox1.Value Then 'condition : si la valeur ligne I colonne 1 de TC est égale à la valeur de la ComboBox1
            .AddItem I 'ajoute le numéro de ligne dans la colonne 0 cachée
            For J = 1 To 11 'boucle 2 : sur les 9 autres colonnes de la ListBox
                .Column(J, .ListCount - 1) = TC(I, J) 'ajoute les données du tableau
            Next J 'prochaine colonne de la boucle 2
        End If 'fin de la conditon
etc.....

Merci d'avance pour vos retours d'explications.

Ci-joint le fichier exemple :

msg erreur

Salut et1000lio,

Il semble bien que tu sois limité à 10 colonnes. Et comme tu as défini ta première colonne à une largeur de 0, tu n'en vois que 9.

Attention : les colonnes sont numérotées de 0 à 9 et non pas de 1 à 10 !

Cordialement.

Salut Yvouille,

Merci pour ta réponse, je trouvai le principe sympa pour sélectionner un ligne spécifique d'un nom répété plusieurs fois dans un tableau.

Donc de mettre, dans le formulaire, toutes les infos de la ligne dans les textbox respectives.

Nbre de colonne = Nbre de textbox

@+

Bonjour,

Additem n'accepte pas plus de 10 colonnes. Il faut alimenter la ListBox par un tableau 2D.

Dim a(), f
Private Sub UserForm_Initialize()
  Set f = Sheets("bd")
  a = f.Range("A2:M" & f.[M65000].End(xlUp).Row).Value
  Me.ListBox1.List = a()
End Sub

Ceuzin

Rechercher des sujets similaires à "code vba remplissage listbox"