Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Abgleich von Daten
#1
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 Smile

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


Angehängte Dateien
.xlsm   Beispielmappe.xlsm (Größe: 23,18 KB / Downloads: 2)
Antworten Top
#2
Hallöchen,

in Deinem Code setzt Du die Zeile_Historie bei einem Treffer auf 5 zurück. Dadurch vergleichst Du lediglich beim ersten Treffer die gleichen Zeilen. Wenn Du die gleichen Zeilen vergleichen willst, nimm nur eine Variable.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste