11.05.2016, 09:20
Hallo,
ich habe leider ein VBA-Problem.
Ich möchte gerne zwei Tabellen miteinander vergleichen.
Es gibt drei Spalten mit jeweils 5 Zeilen (als Beispiel). Tabelle1 als "Historie" und Tabelle2 als "neue Daten".
Zunächst soll Spalte A der "neuen Daten" auf einen Wert geprüft werden, auf eine bestimmte "art". Wenn diese ungleich der gesuchten "art", dann soll die nächste Zeile geprüft werden.
Wenn die Zeile der gewünschten "art" entspricht: dann soll die nun angesprochene Zeile (nun aber Spalte 3) mit der Tabelle1 "Historie" (Spalte 3) vergleichen werden und dort beginnend von oben an bis Spalte 3 Tabelle "neue Daten" mit Spalte 3 Tabelle "Historie" übereinstimmt. Wenn der Wert ungleich der gesuchten "Prüfnummer", dann soll die nächste Zeile (Spalte 3) der Tabelle "Historie" geprüft werden.
Wenn eine Übereinstimmung gefunden wurde, dann soll die Spalte 1 der Tabelle "neue Daten" gelöscht werden.
Dieser ganze Vorgang soll so lange geschehen bis in Spalte 3 Tabelle "neue Daten" kein Wert mehr vorhanden ist.
Ich habe eine Beispielmappe mitangehangen.
Ich hoffe ihr könnt mir helfen
Vielen Dank schonmal.
Beste Grüße Torsten
Mein bisheriger Code:
Private Sub CommandButton1_Click()
Dim Zeile_Suche As String
Dim Zeile As String
Worksheets("neue Daten").Activate
Zeile_Suche = 5
Zeile_Historie = 5
Do
If Worksheets("neue Daten").Cells(Zeile_Suche, 1) <> "0101" Then 'WENN NICHT: 0101 als Prüfart, dann weiter zählen
Zeile_Suche = Zeile_Suche + 1
Else
If Worksheets("neue Daten").Cells(Zeile_Suche, 3).Value = Worksheets("Historie").Cells(Zeile_Historie, 3).Value Then
Worksheets("neue Daten").Cells(Zeile_Suche, 1).Clear 'HIER muss der zuvor gefundene Bereich gelöscht werden (Spalte A)
Zeile_Suche = Zeile_Suche + 1
Zeile_Historie = 5
End If
Zeile_Historie = Zeile_Historie + 1
End If
Loop Until Worksheets("neue Daten").Cells(Zeile_Suche, 3).Value = "" 'So lange suchen bis keine Werte mehr bei den neuen Prüfwerten
End Sub
ich habe leider ein VBA-Problem.
Ich möchte gerne zwei Tabellen miteinander vergleichen.
Es gibt drei Spalten mit jeweils 5 Zeilen (als Beispiel). Tabelle1 als "Historie" und Tabelle2 als "neue Daten".
Zunächst soll Spalte A der "neuen Daten" auf einen Wert geprüft werden, auf eine bestimmte "art". Wenn diese ungleich der gesuchten "art", dann soll die nächste Zeile geprüft werden.
Wenn die Zeile der gewünschten "art" entspricht: dann soll die nun angesprochene Zeile (nun aber Spalte 3) mit der Tabelle1 "Historie" (Spalte 3) vergleichen werden und dort beginnend von oben an bis Spalte 3 Tabelle "neue Daten" mit Spalte 3 Tabelle "Historie" übereinstimmt. Wenn der Wert ungleich der gesuchten "Prüfnummer", dann soll die nächste Zeile (Spalte 3) der Tabelle "Historie" geprüft werden.
Wenn eine Übereinstimmung gefunden wurde, dann soll die Spalte 1 der Tabelle "neue Daten" gelöscht werden.
Dieser ganze Vorgang soll so lange geschehen bis in Spalte 3 Tabelle "neue Daten" kein Wert mehr vorhanden ist.
Ich habe eine Beispielmappe mitangehangen.
Ich hoffe ihr könnt mir helfen

Vielen Dank schonmal.
Beste Grüße Torsten
Mein bisheriger Code:
Private Sub CommandButton1_Click()
Dim Zeile_Suche As String
Dim Zeile As String
Worksheets("neue Daten").Activate
Zeile_Suche = 5
Zeile_Historie = 5
Do
If Worksheets("neue Daten").Cells(Zeile_Suche, 1) <> "0101" Then 'WENN NICHT: 0101 als Prüfart, dann weiter zählen
Zeile_Suche = Zeile_Suche + 1
Else
If Worksheets("neue Daten").Cells(Zeile_Suche, 3).Value = Worksheets("Historie").Cells(Zeile_Historie, 3).Value Then
Worksheets("neue Daten").Cells(Zeile_Suche, 1).Clear 'HIER muss der zuvor gefundene Bereich gelöscht werden (Spalte A)
Zeile_Suche = Zeile_Suche + 1
Zeile_Historie = 5
End If
Zeile_Historie = Zeile_Historie + 1
End If
Loop Until Worksheets("neue Daten").Cells(Zeile_Suche, 3).Value = "" 'So lange suchen bis keine Werte mehr bei den neuen Prüfwerten
End Sub