per VBA Tabellen vergleichen

15/12/2010 - 18:50 von Hans Alborg | Report spam
?Hallo Gruppe,

eben bin ich dabei, dieses "einfache" Thema anzugehen, aber wenn ich die
Bedingungen berücksichtige wirds wohl ein unendlicher Schleifencode werden.
Evtl. kann ja jemand die Sache besser packen:

Es gibt 2 Tabellen(-blàtter) mit je bis zu 900 Eintràgen (Zeilen), einige
hier, andere dort nur vorkommend und die meisten Eintràge in beiden
Tabellen.
Ich kann eine (9-stellige) Zahl in je einer Spalte (beider Tabellen)
sortieren (A-Z). Dann möchte ich Zeilen beider Tabellen anhand dieser Zahlen
vergleichen und die komplette Zeile in eine 3. Tabelle kopieren.
Pro Tabelle kommt jede 9-stellige Zahl nur einmal vor, aber die sind nicht
fortlaufend!

Die Bedingungen: es sollen alle Zeilen erfaßt und in Tb3 eingetragen werden.
Dahinter soll in einer zusàtzlichen Spalte stehen "nur in Tabelle 1", "in
beiden Tabellen" oder "nur in Tabelle 2".
Und das in der Reihenfolge oben genannter Sortierung, d.h. die 9-stelligen
Zahlen von Tabelle 1 und Tabelle 2 bilden eine neue gemeinsame Zahlenreihe
in Tabelle 3.

Geht das ohne viele For- Next???

Äh, natürlich sind die Tabellenköpfe von der Sache nicht betroffen...

TIA,

Hans
 

Lesen sie die antworten

#1 Eberhard Funke
15/12/2010 - 20:43 | Warnen spam
Am Wed, 15 Dec 2010 18:50:09 +0100 schrieb Hans Alborg:

Es gibt 2 Tabellen(-blàtter) mit je bis zu 900 Eintràgen (Zeilen), einige
hier, andere dort nur vorkommend und die meisten Eintràge in beiden
Tabellen.
Ich kann eine (9-stellige) Zahl in je einer Spalte (beider Tabellen)
sortieren (A-Z). Dann möchte ich Zeilen beider Tabellen anhand dieser Zahlen
vergleichen und die komplette Zeile in eine 3. Tabelle kopieren.
Pro Tabelle kommt jede 9-stellige Zahl nur einmal vor, aber die sind nicht
fortlaufend!

Die Bedingungen: es sollen alle Zeilen erfaßt und in Tb3 eingetragen werden.
Dahinter soll in einer zusàtzlichen Spalte stehen "nur in Tabelle 1", "in
beiden Tabellen" oder "nur in Tabelle 2".
Und das in der Reihenfolge oben genannter Sortierung, d.h. die 9-stelligen
Zahlen von Tabelle 1 und Tabelle 2 bilden eine neue gemeinsame Zahlenreihe
in Tabelle 3.

Geht das ohne viele For- Next???




Hallo Hans,

MIT for - next ;-) :

den ersten Teil kann man auch mit VBA machen, habe ich mir aber hier
erspart:
Die 9-stelligen Zahlen stehen in beiden Tabellen ab B2 abwàrts.
In Tab. 1 ab C2 abwàrts eine 1 (eins) als Identifier.
Dasselbe in Tab. 2 mit einer 2.
Kopiere beide Tabellen untereinander in Tab. 3 ab B2:C2 und sortiere nach
Spalte B.

Sub hans()
Dim lngI As Long
With Sheets("Tabelle3")
For lngI = .UsedRange.Rows.Count To 2 Step -1
If .Range("B" & lngI - 1) = .Range("B" & lngI) Then
.Range("D" & lngI - 1) = "beide"
.Range("B" & lngI).EntireRow.Delete
lngI = lngI - 1
Else
.Range("D" & lngI) = .Range("C" & lngI)
End If
Next
End With
End Sub

Das mit dem With kannst Du Dir auch sparen (nur zur Sicherheit)

Mit freundlichen Grüssen Eberhard
XP home XL 2000

Ähnliche fragen