Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
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
Inhaltsverzeichnis

Tabellen vergleichen, zeilen einfügen

Tabellen vergleichen, zeilen einfügen
01.03.2016 16:08:44
mehmet
Hallo Forum,
es sind 2 Tabellen gegeben (Tab1 & Tab2)
Nun soll überprüft werden, ob alle Zeilen von Tab1 in Tab2 enthalten sind.
Der Vergleich soll über Tab1 ab B11 bis Ende B.. (oder leer) und von Tab2 A5 bis Ende A.. (oder leer) ist.
Wenn nicht enthalten, soll in Tab1 markiert werden und die Zeile kopiert und in Tab2 eingefügt werden.
Mein Versuch markiert falsch (umgekehrt) und die Zeilen werden falsch eingefügt.
Vielen Dank und Gruss
mehmet

Sub Spaltenvergleich_mit_Farbe()
Dim i As Integer, j As Integer
For i = 5 To Worksheets("Tab2").Cells(Rows.Count, 1).End(xlUp).Row
For j = 11 To Worksheets("Tab1").Cells(Rows.Count, 2).End(xlUp).Row
If Sheets("Tab2").Cells(i, 1) = Sheets("Tab1").Cells(j, 2) Then
Sheets("Tab1").Cells(j, 2).Interior.ColorIndex = 3
'Sheets("Tab2").Rows(i).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
'Sheets("Tab2").Rows(i).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
'Sheets("Tab2").Rows(i).EntireRow.Insert
End If
Next j
Next i
End Sub

https://www.herber.de/bbs/user/104010.xls

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen vergleichen, zeilen einfügen
01.03.2016 17:03:46
Steve
Hallo Mehmet,
das einfachste ist die komplette Tab2 unter Tab1 zu kopieren und mittels RemoveDuplicates doppelte Einträge zu entfernen. Geht auch bei großen Datenmengen deutlich schneller.
Sub Test()
Dim i As Long, j As Long
Application.ScreenUpdating = True
i = Sheets("Tab1").Cells(Rows.Count, 2).End(xlUp).Row + 1
j = Sheets("Tab2").Cells(Rows.Count, 2).End(xlUp).Row
With Sheets("Tab2").Range("A5:D" & j)
Sheets("Tab1").Range("B" & i).Resize(.Rows.Count, .Columns.Count) = _
Sheets("Tab2").Range("A5:D" & j).Formula
End With
i = Sheets("Tab1").Cells(Rows.Count, 2).End(xlUp).Row
Sheets("Tab1").Range("A10:M" & i).RemoveDuplicates Columns:=2, Header:=xlYes
End Sub
lg Steve

Anzeige
AW: Tabellen vergleichen, zeilen einfügen
01.03.2016 17:09:19
mehmet
Hallo Steve,
vielen Dank für deine Hilfe
Geht leider nicht:
Laufzeitfehler 438
Objekt unterstützt diese Eigenschaft oder Methode nicht
Zeile: Sheets("Tab1").Range("A10:M" & i).RemoveDuplicates Columns:=2, header:=xlYes
Gruss
mehmet

AW: Tabellen vergleichen, zeilen einfügen
01.03.2016 18:26:36
mehmet
sorry, habe vergessen Kontrollkästchen zu aktivieren

AW: Tabellen vergleichen, zeilen einfügen
02.03.2016 09:36:03
Steve
Hallo Mehmet,
ich kann deinen Fehler leider nicht reproduzieren. Prüfe bitte mal welchen Wert die Variable "i" in dem Moment besitzt indem du den Code mit 'F8' im Einzelsatz ausführst. Wobei bei einem ungültigen "i" eigentlich der Fehler '1004' kommen müsste.
Eventuell besteht ein Unterschied zwischen der RemoveDuplicates-Anweisung zwischen Office2010 und 2013, was mir jedoch nicht bekannt wäre. Zeichne mit dem Makrorekorder bitte einmal einen händigen Ablauf auf:
-Tab2 unter Tab1 kopieren, beides markieren (A10 bis Spalte M, letzte Zeile)
-Daten -&gt Datentools -&gt Duplikate entfernen -&gt Häkchen bei "Daten haben Überschriften" und nur "Titel-Nr." anwählen
lg Steve

Anzeige
AW: Tabellen vergleichen, zeilen einfügen
02.03.2016 11:01:42
mehmet
Hallo Steve,
hatte die Datei in Excel als 2002 gespeichert da diese mir eher bekannt ist.
Nach mehrere Versuche habe ich nun auf Version 2013 speichern können.
Wenn ich das Makro laufen lasse, ist das Ergebnis falsch.
Es soll nichts entfernt werden, Beispiel in Tab1 Zeile 14 ist in Tab2 nicht vorhanden.
Tab1 Zeile sollte in in Tab2 zwischen Zeile 7 und 8 eingefügt werden.
Diese in Überschrift in orange markierten Werte sollen in Tab2 eingefügt werden.
Die neue Datei konnte ich leider nicht hochladen.
Server verweigert es, weil es *.xlsm Format hat.
Gruss
mehmet

Anzeige
AW: Tabellen vergleichen, zeilen einfügen
02.03.2016 12:27:43
Steve
Hallo Mehmet,
Sub Test()
Dim i As Long, j As Long
Application.ScreenUpdating = True
i = Sheets("Tab2").Cells(Rows.Count, 1).End(xlUp).Row + 1
j = Sheets("Tab1").Cells(Rows.Count, 1).End(xlUp).Row
With Sheets("Tab1").Range("A11:A" & j)
'TitelNr
Sheets("Tab2").Range("A" & i).Resize(.Rows.Count, 1) = _
Sheets("Tab1").Range("B11:B" & j).Formula
'DesNr.
Sheets("Tab2").Range("B" & i).Resize(.Rows.Count, 1) = _
Sheets("Tab1").Range("H11:H" & j).Formula
'Datum & STD Besch.
Sheets("Tab1").Columns("A").Insert Shift:=xlToRight
Sheets("Tab1").Columns("A").NumberFormat = "General"
Sheets("Tab1").Range("A11").FormulaR1C1 = "=RC4 & "" & "" & RC9"
Sheets("Tab1").Range("A11").AutoFill Sheets("Tab1").Range("A11").Resize(.Rows.Count, 1)
Sheets("Tab2").Range("C" & i).Resize(.Rows.Count, 1) = _
Sheets("Tab1").Range("A11").Resize(.Rows.Count, 1).Value
Sheets("Tab1").Columns("A").Delete
'RegNr.
Sheets("Tab2").Range("D" & i).Resize(.Rows.Count, 1) = _
Sheets("Tab1").Range("J11:J" & j).Formula
End With
i = Sheets("Tab2").Cells(Rows.Count, 2).End(xlUp).Row
Sheets("Tab2").Range("A4:D" & i).RemoveDuplicates Columns:=1, Header:=xlYes
Sheets("Tab2").Range("A5").Copy
Sheets("Tab2").Range("A5:D" & Sheets("Tab2").Cells(Rows.Count, 2).End(xlUp).Row).PasteSpecial _
Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
Ich gebe zu, mein Fehler war von Tab2 nach Tab1 zu kopieren, das habe ich nun korrigiert. Aber dass nur die orange markierten Spalten kopiert werden sollen und dann noch zwischen Zeile 7 und 8 eingefügt werden soll, davon höre ich zum ersten Mal. Das hätte man auch gleich sagen können.
"Tab1 Zeile sollte in in Tab2 zwischen Zeile 7 und 8 eingefügt werden."
Wie genau darf ich das verstehen? ALLE Zeilen dort einfügen, oder nur deine Beispielzeile 14 aus dem Satz zuvor? Dies müsste ich noch ändern.
lg Steve

Anzeige
AW: Tabellen vergleichen, zeilen einfügen
02.03.2016 12:48:06
mehmet
Hallo Steve,
es funktioniert 8-)
Super, vielen Dank.
Ich wollte es mit doppelt Schleife versuchen, aber deine Lösung führt zum Ergebnis.
Die eingefügten Sachen (von Tab1 zu Tab2) sind zwar nicht in der richtigen Reihenfolge,
stehen aber erst mal in der Tabelle "Tab2".
Jetzt müsste nur noch die richtige Reihenfolge einhalten werden in Tab2.
Tab2 sollte wie Tab1 (Spalte B) sortiert sein.
Nochmal vielen Dank
Gruss
mehmet

AW: Tabellen vergleichen, zeilen einfügen
02.03.2016 13:15:33
Steve
Hallo Mehmet,
für das Sortieren füge bitte noch folgende Zeilen unten 'ran:
Sheets("Tab2").Range("A5:D" & Sheets("Tab2").Cells(Rows.Count, 2).End(xlUp).Row).Sort _
Key1:=Sheets("Tab2").Range("B5"), Order1:=xlAscending, Header:=xlYes
lg Steve

Anzeige
Perfekt, vielen Dank Steve (o.T.)
02.03.2016 13:36:01
mehmet
.

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige