XL 2010 Comparer 2 listbox

Chombi

XLDnaute Occasionnel
Bonjour à tous

Je voudrai comparer la colonne 1 de deux listbox, pour supprimer dans la listbox1 les valeurs présentes dans la listbox2. Les colonnes des 2 listbox sont différentes excepter les colonnes 1 qui ont des valeurs communes.

Est ce que quelqu'un a déjà vu cela quelque part, je n'ai pas trouvé......

Merci
 

Pièces jointes

  • Test.xlsm
    21.7 KB · Affichages: 21

laetitia90

XLDnaute Barbatruc
bonjour Chombi
une facon de l'ecrire
tu es pas oblige de deplacer la colonne dans listbox2 pour trouver client

ps sans plus element je supprime seulement dans listbox 1 .......pas dans la feuil1 ????

code user

VB:
Dim i As Long, m As Object, t(), x As Long
Private Sub CommandButton1_Click()
   Set m = CreateObject("scripting.dictionary")
   t = Feuil2.Range("c2:c" & Cells(Rows.Count, 3).End(3).Row).Value
   For i = 1 To UBound(t): m(t(i, 1)) = t(i, 1): Next i
   For i = ListBox1.ListCount - 1 To 0 Step -1
    If m.Exists(ListBox1.List(i)) Then ListBox1.RemoveItem i
Next i
End Sub
Private Sub UserForm_Initialize()
  ListBox1.List = Feuil1.Range("a2:d" & Feuil1.Cells(Rows.Count, 1).End(3).Row).Value
  ListBox2.List = Feuil2.Range("a2:d" & Feuil2.Cells(Rows.Count, 1).End(3).Row).Value
End Sub
 

Chombi

XLDnaute Occasionnel
Bonjour Laetitia90

Merci pour l'interet que tu porte à mon pb

ton code est parfait, cependant je voudrai comparer les 2 listbox ensemble et non pas la colonne1 de la listbox1 avec la colonne C de la feuil2
Dans mon fichier d'origine les 2 Listbox se chargent en fonction de conditions et ne sont donc pas une représentation fidèle des feuilles
Je voudrai comparer la colonne1 de la listbox1 avec la colonne1 de la listbox2
ci joint fichier test1 modifier avec remplissage de la listbox2 sous condition de la cbx1

Merci
 

Pièces jointes

  • Test1.xlsm
    26.1 KB · Affichages: 20

laetitia90

XLDnaute Barbatruc
re:)

sans changer ton code

VB:
Private Sub CommandButton1_Click()
  Set m = CreateObject("scripting.dictionary")
   For i = 0 To ListBox2.ListCount - 1
  If Not m.Exists(ListBox2.List(i)) Then m.Add ListBox2.List(i), ""
  Next i
  For i = ListBox1.ListCount - 1 To 0 Step -1
  If m.Exists(ListBox1.List(i)) Then ListBox1.RemoveItem i
  Next i
  m.RemoveAll
End Sub
 

Soumie

XLDnaute Nouveau
Bonjour, je me permets de vous écrire pour vous demander de l'aide, car j'ai, à quelque variantes près, le même problème. j'ai deux listbox 1 et 2 (toutes deux à choix multiples )avec les mêmes items à sélectioner . J'aimerais écrire un code pour faire en sorte qu'un item sélectionné dans la listbox 1 ne soit plus disponible à la sélection dans la listbox2 sans l'effacer. Pouvez-vous m'aider svp?
Merci!
 

Discussions similaires

Réponses
25
Affichages
603
Réponses
8
Affichages
354