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

Spalten sortieren und vergleichen

Spalten sortieren und vergleichen
21.10.2007 18:08:00
Rob
Einen wunderschönen guten Tag an alle,
ich sitze nun seit Stunden an einem Problem und es will mir einfach nicht gelingen.
Ich habe zwei Spalten A und B in einem Tabellenblatt.
In Spalte A befinden sich 183 Zeilen mit Werten (Zeichenfolgen) und in Spalte B befinden sich z.B. 55 Zeilen mit Werten.
Nun möchte ich Spalte B mit Spalte A vergleichen. Dabei soll sich Spalte B an Spalte A orientieren.
Was soll genau passieren: 1. ist ein Wert von Spalta B nicht in Spalte A, soll dieser in Spalte C
geschrieben werden und in Spalte B gelöscht werden
2. ist Spalte B von diesen Werten bereinigt, soll sie sortiert werden nach
Spalte A (also Lücken mit leeren Zellen )
Wichtig wäre zu sagen, dass ich das in Form eines Makros benötige..Dankeschön
- kleine Hilfe zum verdeutlichen was mein Ziel ist
Grundversion
Spalte A --------- Spalte B
AB12430044 AB12430044
AB12430144 AB12430346
AB12430240 AB12430844
AB12430241 AB12430977
AB12430344 AB12431145
AB12430349 AB12431344
AB12430800
AB12430977
AB12431145
AB12431344
SO SOLL ES DANN AUSEHEN
Spalte A --------Spalte B ----------Spalte C
AB12430044 AB12430044 AB12430346
AB12430144 AB12430844
AB12430240
AB12430241
AB12430344
AB12430349
AB12430800
AB12430977 AB12430977
AB12431145 AB12431145
AB12431344 AB12431344
Der ganze Sonntag ist deshalb draufgegangen. Ach und ja, ich habe mich mit dem Forum beschäftigt und auch die Suche verwendet, z.B. "Spalten vergleichen" doch bin ich zu keiner wahren Lösung mit den dort vorgeschlagenen Hilfen gekommen. Bin noch nen Neuling auf dem Gebiet der "Programmierung", in diesem Fall speziell mit VBA.
Ich möchte mich schon mal bedanken, für das Annehmen meines Problems
Gruß Rob

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten sortieren und vergleichen
21.10.2007 19:45:00
Jan3
Hi Rob,
Probier mal folgenden Code aus.

Sub überprüfen()
Dim z As Long
Dim ws As Worksheet
Set ws = Worksheets("Tabelle1")
anzA = ws.Cells(Rows.Count, 1).End(xlUp).Row
anzB = ws.Cells(Rows.Count, 2).End(xlUp).Row
If ws.Cells(Rows.Count, 3).End(xlUp).Row = 1 Then
ze = ws.Cells(Rows.Count, 3).End(xlUp).Row + 1
End If
For z = 2 To anzB
suchzahl = ws.Cells(z, 2)
With ws.Range("a2:a" & anzA)
Set c = .Find(suchzahl, LookIn:=xlValues, LookAt:=xlWhole)
If c Is Nothing Then
ws.Cells(ze, 3) = suchzahl
ws.Cells(z, 2) = ""
ze = ws.Cells(Rows.Count, 3).End(xlUp).Row + 1
End If
End With
Next
End Sub


Jan

Anzeige
AW: Spalten sortieren und vergleichen
21.10.2007 22:05:00
Rob
Hi Jan,
erstmal danke für die schnelle Antwort. Also der Code schreibt zwar alle nicht vorhandenen Werte in die Spalte C und löscht sie aus Spalte B. Doch die Sortierung von Spalte B nach der Vorgabe von Spalte A bleibt aus.
Gruß rob

AW: Spalten sortieren und vergleichen
21.10.2007 22:36:00
Chaos
Servus Rob,
hier eine Modifiziuerung. Voraussetzung Spalte D ist frei und kann als Hilfsspalte benutzt werden, sonst mach aus dem D2 einfach ein IV2 (da stehen im Regelfall keine Daten).

Sub überprüfen()
Dim z As Long
Dim ws As Worksheet
Set ws = Worksheets("Tabelle1")
anzA = ws.Cells(Rows.Count, 1).End(xlUp).Row
anzB = ws.Cells(Rows.Count, 2).End(xlUp).Row
If ws.Cells(Rows.Count, 3).End(xlUp).Row = 1 Then
ze = ws.Cells(Rows.Count, 3).End(xlUp).Row + 1
End If
For z = 2 To anzB
suchzahl = ws.Cells(z, 2)
With ws.Range("a2:a" & anzA)
Set c = .Find(suchzahl, LookIn:=xlValues, LookAt:=xlWhole)
If c Is Nothing Then
ws.Cells(ze, 3) = suchzahl
ws.Cells(z, 2) = ""
ze = ws.Cells(Rows.Count, 3).End(xlUp).Row + 1
End If
End With
Next z
anzB = ws.Cells(Rows.Count, 2).End(xlUp).Row
ws.Range("B2:B" & anzB).Copy ws.Range("D2")
ws.Range("B2:B" & anzB).ClearContents
Dim y As Long
Dim suche As String
For y = 2 To anzB
If Cells(y, 4).Value  "" Then
suche = Cells(y, 4).Value
With ws.Range("A2:A" & anzA)
Set x = .Find(what:=suche, LookIn:=xlValues, LookAt:=xlWhole)
If Not x Is Nothing Then
Dim reihe As Long
reihe = x.Row
Range("B" & reihe).Value = suche
ws.Cells(y, 4) = ""
End If
End With
End If
Next y
End Sub


Gruß
Chaos

Anzeige
AW: Spalten sortieren und vergleichen
21.10.2007 23:01:00
Rob
Hi Chaos,
Dankeschön das sieht schon super aus. Das mit der freien Spalte kommt nocht hinzu...
In Spalte A steht meine Vorgabe, in Spalte B Werte zum Vergleich, nicht vorhandene kommen in Spalte C.
In Spalte D neue Werte, die dort zur Spalte A nicht vorhanden Werte sollen in Spalte E.
Dann geht das Spielchen weiter, insgesamt stehen in 121 Spalten Werte, die mit Spalte A verglichen werden.
Aber trotzdem Dankeschön für Deine Lösung, das hilft mir erstmal weiter :o)
gruß Rob

AW: Spalten sortieren und vergleichen
21.10.2007 23:25:34
Chaos
Servus Rob,
dann mach das so:

Sub überprüfen()
Dim z As Long
Dim ws As Worksheet
Set ws = Worksheets("Tabelle1")
anzA = ws.Cells(Rows.Count, 1).End(xlUp).Row
Dim spalte As Long
For spalte = 2 To 242 Step 2
anzB = ws.Cells(Rows.Count, spalte).End(xlUp).Row
If ws.Cells(Rows.Count, spalte + 1).End(xlUp).Row = 1 Then
ze = ws.Cells(Rows.Count, spalte + 1).End(xlUp).Row + 1
End If
For z = 2 To anzB
suchzahl = ws.Cells(z, spalte)
With ws.Range("a2:a" & anzA)
Set c = .Find(suchzahl, LookIn:=xlValues, LookAt:=xlWhole)
If c Is Nothing Then
ws.Cells(ze, spalte + 1) = suchzahl
ws.Cells(z, spalte) = ""
ze = ws.Cells(Rows.Count, spalte + 1).End(xlUp).Row + 1
End If
End With
Next z
anzB = ws.Cells(Rows.Count, spalte).End(xlUp).Row
ws.Range(Cells(2, spalte), Cells(anzB, spalte)).Copy ws.Range("IV2")
ws.Range(Cells(2, spalte), Cells(anzB, spalte)).ClearContents
Dim y As Long
Dim suche As String
For y = 2 To anzB
If Cells(y, 256).Value  "" Then
suche = Cells(y, 256).Value
With ws.Range("A2:A" & anzA)
Set x = .Find(what:=suche, LookIn:=xlValues, LookAt:=xlWhole)
If Not x Is Nothing Then
Dim reihe As Long
reihe = x.Row
Cells(reihe, spalte).Value = suche
ws.Cells(y, 256) = ""
End If
End With
End If
Next y
Next spalte
End Sub


Hier müssen, wie du beschrieben hast die Werte, die verglichen werden, ab Spalte B in jeder 2.Spalte stehen, also, B, D, F,u.s.w. . Das Makro vergleicht 121 Spalten mit Spalte A und schreibt die nicht gleichen Werte jeweils in die Nachbarspalte, also B nach C und D nach E, u.s.w.. Die Hilfsspalte ist also IV.
Gruß
Chaos

Anzeige
AW: Spalten sortieren und vergleichen
21.10.2007 23:58:00
Rob
Also Chaos,
ich bin schwer beeindruckt von der Lösung. Es funktioniert so wie ich es mir vorgestellt habe. Ich hätte nie gedacht, dass das Makro so kompliziert aussehen kann. Vielen Dank :o)

AW: Spalten sortieren und vergleichen
22.10.2007 09:45:02
Günter
Hallo und Guten Tag,
schalte mich ein, da ich den Code toll finde.
Wenn ich den Code bei mir laufen lasse und es mehere
nicht vorhandene gibt, dann bekomme ich einen Lauf-
zeitfehler 1004.
1 8
2 2
3 9
4
5 5
6
In Spalte C müsste jetzt 8 (ist da) und die 9 stehen.
9 fehlt und 1004-Fehler kommt.
Gruss
Günter

AW: Spalten sortieren und vergleichen
22.10.2007 10:58:00
Chaos
Servus Günter,
das kann ich nicht nachvollziehen. Bei mir funktionieren der Ursprungscode, als auch der modifizierte Code einwandfrei.
Gruß
Chaos

Anzeige
AW: Spalten sortieren und vergleichen
22.10.2007 11:29:00
Erich
Hallo Günter,
liegt es vielleicht daran, dass Chaos' Code von einer Überschriftzeile 1 ausgeht,
die Daten also ab Zeile 2 auswertet?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Spalten sortieren und vergleichen
22.10.2007 11:44:00
Chaos
Servus Erich,
das glaub ich eher nicht, weil sonst müsste ja die 8 fehlen und es fehlt ihm ja die 9. Und selbst dann dürfte kein Laufzeitfehler auftreten, sondern nur der Wert nicht vorhanden sein. Evtl. hat er in der zeile 65536 etwas stehen, wobei auch das nicht der Grund sein sollte.
Gruß
Chaos

AW: Spalten sortieren und vergleichen
22.10.2007 11:44:00
Günter
Hallo,
danke für die Rückmeldung.
Code funktioniert jetzt.
Gruss
Günter

Anzeige
AW: Und woran hat es gelegen? o.T.
22.10.2007 11:53:25
Chaos
.

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige