Guten Tag
Also vorne weg, mit Makros, etc habe ich sonst nicht viel am Hut. Ich Programmiere zwar auch, aber nicht in diesem Bereich..
Nun gut ich habe zwei Tabellen die abgeglichen werden müssen. Die Tabelle 2 enthält zum Teil die gleichen Datensätze wie die Tabelle 1. Alle Werte die in Tabelle 1 nicht vorkommen sollen in die Tabelle 3 geschrieben werden.
Dazu habe ich einen passenden Code im Internet gefunden.
Nur erhalte ich nun folgende Fehlermeldung: "Laufzeitfehler 9, Index ausserhalb des gültigen Bereichs"
Hier mein Code:
Das Ganze habe ich unter Visual Basic in die Tabelle 1 geschrieben. Korrekt?
Danke Euch!
parafi
Also vorne weg, mit Makros, etc habe ich sonst nicht viel am Hut. Ich Programmiere zwar auch, aber nicht in diesem Bereich..

Nun gut ich habe zwei Tabellen die abgeglichen werden müssen. Die Tabelle 2 enthält zum Teil die gleichen Datensätze wie die Tabelle 1. Alle Werte die in Tabelle 1 nicht vorkommen sollen in die Tabelle 3 geschrieben werden.
Dazu habe ich einen passenden Code im Internet gefunden.
Nur erhalte ich nun folgende Fehlermeldung: "Laufzeitfehler 9, Index ausserhalb des gültigen Bereichs"
Hier mein Code:
HTML:
Sub doppelte_Daten_suchen()
' vergleicht Tabelle 2 mit Tabelle 1 und schreibt Werte
' aus Tabelle 2, die in Tabelle 1 nicht vorkommen in Tabelle 3
Dim verg1(500), verg2(500), dopp(500) As Integer, num(500) ' Variablen dimensionieren
Dim y As Integer, z As Integer, r As Integer, s As Integer ' Variablen deklarieren
Dim zz As Integer, u As Integer ' Variablen deklarieren
' Tabelle 1 einlesen
Worksheets("Tabelle1").Activate ' Tabelle 1 aktivieren
y = 2 ' Startwert für Schleifenzähler (hier Zeile 2)
Do While Cells(y, 1) <> "" ' Bedingung für Schleife (Laufe solange Zelle gefüllt ist)
verg1(y) = Cells(y, 2) ' Inhalte in Variable einlesen
y = y + 1 ' Schleifenzähler um 1 erhöhen
Loop ' Wendepunkt für Schleife
' Tabelle 2 einlesen
Worksheets("Tabelle2").Activate ' Tabelle 2 aktivieren
z = 2 ' Startwert für Schleifenzähler (hier Zeile 2)
Do While Cells(z, 1) <> "" ' Bedingung für Schleife (Laufe solange Zelle gefüllt ist)
num(z) = Cells(z, 1) ' Inhalte in Variable einlesen
verg2(z) = Cells(z, 2) ' Inhalte in Variable einlesen
z = z + 1 ' Schleifenzähler um 1 erhöhen
Loop ' Wendepunkt für Schleife
' Inhalte vergleichen
For r = 2 To y - 1 ' Start äußere Schleife
For s = 2 To z - 1 ' Start innere Schleife
If verg1(r) = verg2(s) Then ' wenn Werte gleich dann ...
dopp(s) = 1 ' ... Variable auf 1 setzen
Cells(s, 3) = "gleich" ' ... Wert in Tabelle markieren
End If ' Ende der Bedingung
Next s ' Wendepunkt für innere Schleife
Next r ' Wendepunkt für äußere Schleife
' In Tabelle 3 schreiben
Worksheets("Tabelle3").Activate ' Tabelle 3 aktivieren
zz = 1 ' Startwert für Schleifenzähler (hier Zeile 2)
For u = 1 To z - 1 ' Start für Schleife
If dopp(u) = 0 Then ' wenn Variable = 0 dann ...
Cells(zz, 1) = num(u) ' ... 1. Wert in Zelle schreiben
Cells(zz, 2) = verg2(u) ' ... 2. Wert in Zelle schreiben
zz = zz + 1 ' ... Schleifenzähler um 1 erhöhen
End If ' Ende der Bedingung
Next u ' Wendepunkt für Schleife
End Sub
Das Ganze habe ich unter Visual Basic in die Tabelle 1 geschrieben. Korrekt?
Danke Euch!
parafi