Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
560to564
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
560to564
560to564
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spalten vergleichen

Spalten vergleichen
03.02.2005 09:56:52
Lars
Moin,
ich habe leider bisher keine Erfahrungen mit makros, aber andere Programmiersprachen gelernt und hatte daher die einbildung, dass es gar nicht so schwer sein kann! ;)
Ich möchte vom Arbeitsblatt 1 die erste Spalte mit dem Arbeitsblatt 2 erste spalte vergleichen und die raussuchen, die NICHT in arbeitsblatt 2 sind.
Die daten sind dabei wild durcheinander gewürfelt und sollten nach möglichkeit nicht umsortiert werden.
mein Versuch bisher:
dim Vorhanden as long

Sub VergleichListen()
'AnzahlEingang = Worksheets("Sortierte Liste").Cells(3, 7)
'AnzahlAusgang = Worksheets("Sortierte Liste").Cells(4, 7)
k = 2
l = 2
Vorhanden = 2
Set r = Worksheets("Eingangsliste").Columns(3)
Set s = Worksheets("Ausgangsliste").Columns(3)
For Each c In r
'For i = 2 To AnzahlEingang + 1
'Worksheets("Übergabe nächster Tag").Cells(l, 4) = Vorhanden
'l = l + 1
For Each d In s
'Eintritt in die Eingangsliste
'For j = 2 To AnzahlAusgang + 1
'Eintritt in die Ausgangsliste
If c.Value = d.Value Then
'If Worksheets("Eingangsliste").Cells(i, 1) = Worksheets("Ausgangsliste").Cells(j, 1) Then
Vorhanden = 1
End If
Worksheets("Übergabe nächster Tag").Cells(m, 3) = Vorhanden
m = m + 1
Next
'Next j
If Vorhanden = 2 Then
Worksheets("Übergabe nächster Tag").Cells(k, 2) = Worksheets("Eingangsliste").Cells(i, 1)
k = k + 1
End If
'Next i
Next
End Sub

Wie man sieht, hab ichs über 2 verschiedene Möglichkeiten versucht, aber bin immer gescheitert, warum?!?
Wäre nett, wenn jemand weiterhelfen könnte. Danke.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten vergleichen
Jan
Hi Lars,
Probier mal diese Variante. Vielleicht mußt Du Anpassungen durchführen, aber vom Prinzip her, müßte es funktionieren.

Sub VergleichListen()
Set ws1 = Worksheets("Eingangsliste")
Set ws2 = Worksheets("Ausgangsliste")
Set ws3 = Worksheets("Übergabe nächster Tag")
AnzE = ws1.Cells(65536, 3).End(xlUp).Row
AnzA = ws2.Cells(65536, 3).End(xlUp).Row
For k = 2 To AnzE
For l = 2 To AnzA
If ws1.Cells(k, 3) = ws2.Cells(l, 3) Then
ws3.Cells(l, 2) = ws1.Cells(k, 1)
Exit For
End If
Next l
Next k
End Sub

Jan
AW: Spalten vergleichen
Lars
Prima, hat sehr weiter geholfen! noch ein bisschen basteln und er macht alles, was ich brauchen!
Danke sehr
Anzeige
AW: Spalten vergleichen
Lars
MIST! ;) zu früh gefreut.
Das war ja die einfache lösung! ;)
ich brauche ja die jenigen elemente, die NICHT in Ausgangsliste sind aber in eingangsliste stehen. :-/
AW: Spalten vergleichen
Lars
Auf die gefahr hin zu nerven:
Nun klappts. :)
Erste Spalte die ungleichen
zweite spalte die gleichen (als sicherheit zum vergleich...)

Sub VergleichListen2()
Set ws1 = Worksheets("Eingangsliste")
Set ws2 = Worksheets("Ausgangsliste")
Set ws3 = Worksheets("Übergabe nächster Tag")
AnzE = ws1.Cells(65536, 1).End(xlUp).Row
AnzA = ws2.Cells(65536, 1).End(xlUp).Row
m = 2
For k = 2 To AnzE
For l = 2 To AnzA
If ws1.Cells(k, 1) = ws2.Cells(l, 1) Then
ws3.Cells(l, 2) = ws1.Cells(k, 1)
Exit For
End If
If l = AnzA Then
If ws1.Cells(k, 1) <> ws2.Cells(l, 1) Then
ws3.Cells(m, 1) = ws1.Cells(k, 1)
m = m + 1
End If
End If
Next l
Next k
End Sub

Anzeige
oder so...
IngoG
Hallo Jan,
Du kannst mE eine Deiner beiden Schleifen weglassen, wenn Du mit Countif arbeitest...

Sub VergleichListen2()
Dim WS1, ws2, ws3 As Worksheet
Dim m%
Dim k%
Dim AnzA%, AnzE%
Set WS1 = Worksheets("Eingangsliste")
Set ws2 = Worksheets("Ausgangsliste")
Set ws3 = Worksheets("Übergabe nächster Tag")
AnzE = WS1.Cells(65536, 1).End(xlUp).Row
AnzA = ws2.Cells(65536, 1).End(xlUp).Row
m = 2
For k = 2 To AnzE
If WorksheetFunction.CountIf(ws2.Range("a2:a" & AnzE), WS1.Cells(k, 1)) = 0 Then
ws3.Cells(m, 2) = WS1.Cells(k, 1)
m = m + 1
End If
Next k
End Sub

Gruß Ingo
Anzeige
AW: Spalten vergleichen
Jan
Hi Lars,
Nimm diesen Code hierfür:

Sub vergleich()
Set ws1 = Worksheets("Eingangsliste")
Set ws2 = Worksheets("Ausgangsliste")
Set ws3 = Worksheets("Übergabe nächster Tag")
AnzE = ws1.Cells(65536, 3).End(xlUp).Row
AnzA = ws2.Cells(65536, 3).End(xlUp).Row
l = 2
For k = 2 To AnzE
s = ws1.Cells(k, 3)
With ws2.Range("c1:c" & AnzA)
Set c = .Find(s, LookIn:=xlValues)
If c Is Nothing Then
ws3.Cells(l, 2) = ws1.Cells(k, 1)
l = l + 1
End If
End With
Next
End Sub

Jan
AW: Spalten vergleichen
Lars
Klasse. Ihr habt prima geholfen. Nun tuts das, was es soll! :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige