Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1860to1864
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

Vergleich zweier Tabelleninhalte VBA

Vergleich zweier Tabelleninhalte VBA
16.12.2021 12:33:04
Niklas
Hallo!
Ich versuche mich jetzt schon seit Tagen an einem VBA-Skript, allerdings fehlt mir einfach die Erfahrung und auch das Googlen war bis jetzt leider nicht erfolgreich..
Ich habe 2 Tabellen, wobei Tabelle 1 ca. 400 Zeilen und Tabelle 2 ca. 200 Zeilen hat. Ich versuche aktuell beide Tabellen zu vergleichen und in einer 3. Tabelle die Unterschiede zwischen 1 und 2 auszugeben. Auch, wenn eine Zeile z.B. neu ist. Die Regel =Tabelle2!A2Tabelle1!A2 funktioniert nicht, da, wenn z.B. eine Zeile unterschiedlich ist, ab da jede weiter Zeile als Unterschied gesehen wird.
Ich bitte um Hilfe.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mit Zählenwenn()
16.12.2021 12:44:21
Rudi
Hallo,
in Tabelle1!B:B
=Zählenwenn(Tabelle2!A:A;A2)
und runter kopieren.
In Tab2 entsprechend.
Gruß
Rudi
AW: mit Zählenwenn()
16.12.2021 13:15:50
Niklas
Hallo noch mal,
es ist mir ziemlich unangenehm noch mal nachzufragen, aber ich weiß leider nicht, wie du das meinst. Ich hatte es jetzt mit "neuer Regel", "Formel zur Ermittlung der zu formatierenden Zellen verwenden" versucht und dort meine Formel eingegeben, nachdem ich Tab 1 u. 2 markiert habe.
Aber wie gesagt, versuch ich die Unterschiede von z.B. Tab 1 zu 2 in einer neuen Tabelle auszugeben.
Gruß
Niklas
Rudis Antwort...
16.12.2021 13:23:44
{Boris}
Hi,
...zielte nicht auf die Bedingte Formatierung ab, sondern auf Formeln in der Tabelle.
VG, Boris
Anzeige
AW: mit Zählenwenn()
16.12.2021 14:19:19
Rudi

Aber wie gesagt, versuch ich die Unterschiede von z.B. Tab 1 zu 2 in einer neuen Tabelle auszugeben.
Hallo,
dann erstell dir eine dritte Tabelle mit einmaligen Einträgen aus Tab1 und Tab2 und setz da 2x Zählenwenn() ein.
Gruß
Rudi
AW: mit Zählenwenn()
16.12.2021 14:26:42
Niklas
Vielen Dank für die Hilfe.
Ich habe jetzt folgendes bei Herber gefunden, welches funktioniert.

Sub Vgl()
Dim lngZMax As Long
Dim rngBereichId As Range
Dim wksBlatt As Worksheet
Dim wksBlattVgl As Worksheet
Dim wksBlattZ As Worksheet
Dim s As Long
Dim x As Long
Dim y As Long
Dim z As Long
x = 2
s = 0
Set wksBlatt = ThisWorkbook.Worksheets("Tabelle2")
Set wksBlattVgl = ThisWorkbook.Worksheets("Tabelle1")
Set wksBlattZ = ThisWorkbook.Worksheets("Tabelle3")
With wksBlatt
.Range("A1:F1").Copy wksBlattZ.Range("A1")
lngZMax = .Cells(.Rows.Count, 2).End(xlUp).Row
Set rngBereichId = wksBlattVgl.Range("A2:a" & wksBlattVgl.Cells(.Rows.Count, 1).End(xlUp). _
Row)
wksBlattZ.Range("A2:F" & .Cells(.Rows.Count, 2).End(xlUp).Row).ClearContents
For w = 2 To lngZMax
If Application.WorksheetFunction.CountIf(rngBereichId, wksBlatt.Cells(w, 1)) = 0 Then
wksBlattVgl.Cells(w, 1).EntireRow.Insert
.Cells(w, 2).EntireRow.Copy wksBlattZ.Cells(x, 1)
x = x + 1
ElseIf wksBlattVgl.Cells(w, 2).Value  .Cells(w, 2).Value Then
.Cells(w, 2).EntireRow.Copy wksBlattZ.Cells(x, 1)
x = x + 1
ElseIf wksBlattVgl.Cells(w, 2).Value = .Cells(w, 2).Value And wksBlattVgl.Cells(w, 5). _
Value  .Cells(w, 5).Value Then
For i = 1 To Len(.Cells(w, 5))
If Mid(wksBlattVgl.Cells(w, 5), i, 1)  Mid(.Cells(w, 5), i, 1) Then
.Cells(w, 5).Characters(Start:=i, Length:=i).Font.Color = RGB(255, 0, 0)
End If
Next i
For z = Len(.Cells(w, 5)) To 1 Step -1
If Mid(.Cells(w, 5), z, 1) = Mid(wksBlattVgl.Cells(w, 5), Len(wksBlattVgl. _
Cells(w, 5)) - s, 1) Then
.Cells(w, 5).Characters(Start:=z, Length:=z).Font.Color = RGB(10, 0, 0)
Else
GoTo sprung
End If
s = s + 1
Next z
sprung:
.Cells(w, 5).EntireRow.Copy wksBlattZ.Range("A" & x)
x = x + 1
End If
s = 0
Next w
End With
With wksBlattVgl
For y = .Cells(.Rows.Count, 2).End(xlUp).Row To 1 Step -1
If IsEmpty(.Cells(y, 1).Value) Then
.Cells(y, 1).EntireRow.Delete
End If
Next y
End With
End Sub
MfG
Niklas
Anzeige
AW: Vergleich zweier Tabelleninhalte VBA
16.12.2021 15:29:29
Arnd
Mit FILTER geht es noch einfacher:

=FILTER($C$3:$C$10;ZÄHLENWENNS($A$3:$A$7;$C$3:$C$10)=0;"")
EDIT: Es musste natürlich =0 heißen - wenn ich das richtig verstanden habe, wolltest diejenigen Namen in der Liste, die nicht in der Liste auftauchen.

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige