Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
240to244
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
240to244
240to244
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

mehrspaltige ListBox abgleichen

mehrspaltige ListBox abgleichen
03.04.2003 16:46:24
ChrisL
Hallo Forum

Da stecke ich wieder einmal vor einem Problem mit mehrspaltigen Listboxen (in UF).

1. Listbox enthält ALLE Standorte (4 Spalten, Name, Adr., Ort, Land), welche anhand von bestimmten Kriterien aus einer Tabelle eingelesen wurden.

2. Listbox enthält einige der Standorte, aber nicht alle (Aufbau gleiche 4 Spalten).

und nun kommst... in der 3. Spalte sollen nur die Standorte vorkommen, die nicht schon in Listbox 2 enthalten sind.

Diese 3. Listbox könnte ich nun wieder über die Tabelle laden und dabei Tabelle 1 und 2 vergleichen. Diese möchte ich aber wenn es geht nicht wegen der Performance. Die Standorte werden aus verschiedenen Tabellen geholt mit verschiedenen Kriterien und ist so schon etwas langsam.

Mein Versuch sah so aus...

ListBox3.List = ListBox1.List

For i = 0 To ListBox3.ListCount - 1
For ii = 0 To ListBox2.ListCount - 1
'If ListBox3.ListIndex(i) = ListBox2.ListIndex(ii) Then ListBox2.RemoveItem ListBox2.ListIndex(ii)
Next ii
Next i

Bereits beim Vergleich meckert er (Type mismatch)... hat jemand eine Idee, ob das überhaupt umsetzbar ist?

Herzlichen Dank im Voraus

Gruss
Chris

----------------------------------------------------------

PS:
Diesen Code habe ich als Beispiel zum Üben verwendent (leider nicht erfolgreich):

Option Explicit

Private Sub UserForm_Initialize()
Dim i As Byte, ii As Byte

'Listbox1 füllen
ListBox1.ColumnCount = 4
ReDim MyArray(1 To 4, 0 To 3)
For i = 1 To 4
MyArray(i, 0) = "A" & i
MyArray(i, 1) = "B" & i
MyArray(i, 2) = "C" & i
MyArray(i, 3) = "D" & i
Next i
ListBox1.List = MyArray


'Listbox2 füllen
ListBox2.ColumnCount = 4
ReDim MyArray(1 To 2, 0 To 3)
For i = 1 To 2
MyArray(i, 0) = "A" & i
MyArray(i, 1) = "B" & i
MyArray(i, 2) = "C" & i
MyArray(i, 3) = "D" & i
Next i
ListBox2.List = MyArray

ListBox3.ColumnCount = 4
ListBox3.List = ListBox1.List

'Hier beginnt das Problem....
For i = 0 To ListBox3.ListCount - 1
For ii = 0 To ListBox2.ListCount - 1
'If ListBox3.ListIndex(i) = ListBox2.ListIndex(ii) Then ListBox2.RemoveItem ListBox2.ListIndex(ii)
Next ii
Next i
End Sub




4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: mehrspaltige ListBox abgleichen
03.04.2003 17:05:48
Erwin_E

Hallo,
am schnellsten gehts, wenn du die Daten in zwei Array einliest und diese verleichst.
Gruß Erwin

Re: mehrspaltige ListBox abgleichen
03.04.2003 17:14:42
ChrisL

Hallo Erwin

Danke, aber leider weiss ich nicht wie das geht. Ist es möglich, dass du mir ein kleines Beispiel machst?

Das Einlesen geht vermutlich so...

MyArray = Listbox1.List

aber wie vergleichen?

Sorry aber habs nicht so mit Array und wär dir echt dankbar für einen Ansatz.

Gruss
Chris

Re: mehrspaltige ListBox abgleichen
04.04.2003 11:45:55
ChrisL

neues Posting:
https://www.herber.de/forum/messages/240308.html

Re: mehrspaltige ListBox abgleichen
04.04.2003 17:20:58
ChrisL

Der vollständigkeithalber hier die Lösung (ohne in Array einlesen)...

For i = 0 To ListBox2.ListCount - 1
For ii = ListBox3.ListCount - 1 To 0 Step -1
If ListBox2.Column(0, i) = ListBox3.Column(0, ii) And ListBox2.Column(1, i) = ListBox3.Column(1, ii) And ListBox2.Column(2, i) = ListBox3.Column(2, ii) And ListBox2.Column(3, i) = ListBox3.Column(3, ii) Then
ListBox3.RemoveItem (ii)
End If
Next
Next

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige