[VBA] - Lister dans une ListBox les données d'une cellule séparation ","

Bonsoir,

Savez-vous si on peut lister dans une ListBox les données contenues dans une cellules, séparées par des virgule ?

Exemple :

Abricot, Cerise, Pêche, Poire, Pomme

Devient >

Abricot

Cerise

Pêche

Poire

Pomme

Si oui,

Je joins un fichier en PJ, voici son fonctionnement :

5 boîtes : qui servent à remplir une colonne "cortèges" à partir d'informations contenues dans d'autres colonnes (Col [L] et [M])

La première (ListBox) liste les données contenues dans la colonne [L]

La seconde (TextBox) indique les données contenues dans la colonne [M]

La troisième (ListBox) liste les données contenues dans la colonne [B]

La quatrième (textbox) indique les données contenues dans la colonne [C]

La cinquième (ListBox) liste les données contenues dans la colonne [O] (Et c'est sur celle là que je fais appel à vous).

Mon exemple imite un utilisateur en cours de remplissage, où seule la ligne 2 à été complétée. (Il faut donc sélectionner la 1ère ligne dans la ListBox des "Habitats naturels" => "Ruisseau")

J'aimerais que la ListBox5 liste les données contenues dans la colonne [O] en les séparant à à l'aide des virgules.

Dans cette colonne est inscrit : "Ourlets,Friches vivaces,Friches annuelles"

J'aimerais que dans la ListBox5 ces données soient inscrites comme suit :

Ourlets

Friches vivaces

Friches annuelles

9split-listbox.xlsm (34.65 Ko)

Je vous remercie de votre attention !

Bonne journée !

Bonjour,

J'ai modifier ton code ainsi et si j'ai bien compris cela devrait te satisfaire.

Public Sub alim_hab_esp()
Dim lras&, lcas%, i%, aa, a%, j%

Dim Cortèges() As String

With ActiveSheet
Me.TextBox4 = ""
me.ListBox5.Clear
lras = .Cells(.Rows.Count, 1).End(xlUp).Row: lcas = .UsedRange.Columns.Count
aa = .Range(.Cells(1, 1), .Cells(lras, lcas))
    For i = Me.ListBox4.ListCount - 1 To 0 Step -1
        If Me.ListBox4.Selected(i) Then
            For a = 2 To UBound(aa)
                If .Cells(a, habnat) = Me.ListBox4.List(i, 0) Then
                    If aa(a, 3) <> "" Then Me.TextBox4 = aa(a, 3)

                    Cortèges = Split(.Cells(a, "O"), ",")
                    For j = LBound(Cortèges) To UBound(Cortèges)
                        ListBox5.AddItem Cortèges(j)
                    Next

                End If
            Next a
        End If
    Next i
End With
End Sub

Tiens moi au courant.

Bonsoir,

C'est exactement ce que je voulais faire. J'ai essayé de remplir un array en séparant les infos à l'aide de split sans succès.

Votre proposition ressemble beaucoup à ce que j'essayais de faire, mais elle, elle marche !

Merci pour votre aide, il ne reste plus qu'à adapter au document initial.

Bonne soirée !

Rechercher des sujets similaires à "vba lister listbox donnees separation"