Listbox

Bonjour,

Dans le fichier ci-joint , la macro pour envoyer les multisélections des listbox dans la cellule active fonctionne très bien , cependant pour aller plus loin , est -il possible de faire le chemin inverse , je m'explique, un exemple, en A1 le résultat de la macro , si je sélectionne la cellule A1 et ouvre à nouveau l'userform est -il possible que les lisbox sélectionnent automatiquement les options déja envoyées en A1 , cela me permettrait d'ajouter ou retirer des valeurs dans la cellule sans tout effacer,

merci de votre expertise

51classeur1.xlsm (22.03 Ko)

Salut :

Si les deux listes ont le même nombre de lignes

Utilisez ce code

Private Sub UserForm_Initialize()

Art = Split(ActiveCell.Text)

For x = LBound(Art) To UBound(Art)

For i = 0 To ListBox1.ListCount - 1

If CStr(Art(x)) = CStr(ListBox1.List(i)) Then ListBox1.Selected(i) = True

If CStr(Art(x)) = CStr(ListBox2.List(i)) Then ListBox2.Selected(i) = True

Next

Next

End Sub

Super ! grand merci à vous

Fonctionne très bien pour le même nombre de lignes , est -il possible d'adapter le code pour le cas contraire ?

merci de votre expertise

Salut Subfestivus :

'Effacer la propriété RowSource de Chaque liste dans l'angle Properties-ListBox 1 et 2

Private Sub UserForm_Initialize()

'Cette ligne pour remplir la liste1

Me.ListBox1.List = Sheets("Liste").Range("A1").Resize(Sheets("Liste").Range("A" & Rows.Count).End(xlUp).Row, 1).Value

'Cette ligne pour remplir la liste2

Me.ListBox2.List = Sheets("Liste").Range("B1").Resize(Sheets("Liste").Range("B" & Rows.Count).End(xlUp).Row, 2).Value

'liste1

Art = Split(ActiveCell.Text)

For x = LBound(Art) To UBound(Art)

For i = 0 To ListBox1.ListCount - 1

If CStr(Art(x)) = CStr(ListBox1.List(i)) Then ListBox1.Selected(i) = True

Next: Next

'--------------------------------------------------------------------------

'liste2

Art2 = Split(ActiveCell.Text)

For x2 = LBound(Art) To UBound(Art2)

For i2 = 0 To ListBox2.ListCount - 1

If CStr(Art2(x2)) = CStr(ListBox2.List(i2)) Then ListBox2.Selected(i2) = True

Next: Next

End Sub

Bonjour ,

merci beaucoup le code fonctionne très bien .

J'ai remarqué que les lignes avec des espaces entre les caractères ne sont pas reconnus.

Cependant encore un grand merci

Une petite idée ? svp

Bonsoir

je n'ai pas compris

Y at-il un exemple

Bonsoir,

j'ai modifié les items des listbox

ci - joint le fichier

21classeur1.xlsm (25.33 Ko)

SVP

Rechercher des sujets similaires à "listbox"