Hallo an alle,
für meine Projektarbeit suche ich einen Weg, um drei Listen, in denen je eine Spalte mit einem Zahlen- u.Buchstabenstring steht miteinander zu vergleichen.Die Strings, die in allen drei Listen vorkommen, sollen in eine neue Liste geschrieben werden.
Bis jetzt klappt das nur in einzelnen Schritten (händisch). Es soll aber per Buttonklick in einem Modul möglich sein. Vielleicht kann mir jemand helfen? Bin leider noch Anfänger.
Mfg
Gagamello
hallo gagamello,
du sprichst von excel??
oder von txt-files?
ich würde das in excel mit einem verschachtelten „do until-loop“ lösen.
auf jeder deiner listen schreibst du am schluss der datensätze ein „END“ damit dein makro erkennt, wann schluss ist mit daten.
dann fängst du in dem style an:
do until sheets(0).cells(zeile, 1) = "END"
suchwert = sheets(0).cells(zeile, 1)
do until sheets(1).cells(zeile1, 1) = "END"
if suchwert = sheets(1).cells(zeile1, 1) then
do until sheets(2).cells(zeile2, 1) = "END" then
if suchwert = sheets(2).cells(zeile2,1) then
'schreibe wert, da in allen 3 listen vorhanden
end if
zeile2 = zeile2 + 1
loop
end if
zeile1 = zeile1 + 1
loop
zeile = zeile +1
loop
so ungefähr jedenfalls, code ohne geewähr, aber vom prinzip würd ichs so machen
viel erfolg
rasta
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi,
hab da nur mal schnell was zusammengecodet.
Klappt zwar auch ist aber nicht soooooo toll.
Also füg das in ein Modul ein
Private colList As New Collection
Public Sub VergleicheListboxes(lst1 As ListBox, lst2 As ListBox, lst3 As ListBox, lstResult As ListBox)
Dim lstEntry As Object
On Error GoTo EntryAlreadyExists1
For i = 0 To lst1.ListCount - 1
Set lstEntry = lst1
colList.Add lst1.List(i), lst1.List(i)
Set lstEntry = lst2
colList.Add lst2.List(i), lst2.List(i)
Next
Exit Sub
EntryAlreadyExists1:
For j = 0 To lst3.ListCount - 1
If lst3.List(j) = lstEntry.List(i) Then
lstResult.AddItem lst3.List(j)
Resume Next
End If
Next
Resume Next
End Sub
Und aufrufen tust du das ganze so
VergleicheListboxes List1, List2, List3, List4
Ich hoffe, dass sich der Code von selber erklärt
greetz
Mario