Thema Datum  Von Nutzer Rating
Antwort
Rot Arrays miteinander vergleichen
30.08.2018 15:45:30 Frank
NotSolved
30.08.2018 15:46:57 Gast31781
NotSolved
30.08.2018 15:55:51 Gast79109
NotSolved
30.08.2018 21:19:22 Mackie
NotSolved

Ansicht des Beitrags:
Von:
Frank
Datum:
30.08.2018 15:45:30
Views:
1489
Rating: Antwort:
  Ja
Thema:
Arrays miteinander vergleichen

 

Hallo Forum,

mein erster Beitrag und gleich mit einem wahrscheinlich nicht sehr altäglichen Problem.
ich möchte zwei Tabelen miteinander vergleichen, eine Auswertung soll den passenden Datensatz dann in die 3. Tabelle Kopieren.
 

Bisher war mein Asatz dazu"quick & dirty", über If-abfragem jede zelle einzeln verglichen und dann die passenden Daten als Zelle kopiert und eingefügt. Klappt bei 350 Datensätzen sauber, bei 1500 (alleine in einer der Tabellen) aber nicht mehr ohne das der Prozessor heiß wird.

Jetzt wollte ich es Sauberer in einem Vektor / Matrize sammeln und dann auswerten, Die Matritze zu füllen klappt super, allerding vergleicht er sie nicht miteinander.

Hier die zu vergleichenden Daten:

  • PLZ
  • Ort
  • Straße
  • Hausnummer

Diese daten sind in beiden Tabellen gleich drin auch von der Formatierung her.

Code:

''Adressen abgleichen
Sub Abgleich_2()
''Variablen zuordnen
Dim n, nl, nm As Integer
Dim i, il, im As Integer
Dim z, za As Integer
Dim LetzteZeileVorgabe As Integer
Dim LetzteZeileSuche As Integer
Dim LetzteZeileAuswertung As Integer
Dim PostcodeV()

Dim PostcodeS()

Dim P, a, b As Integer


''Laufvariablen Definieren
n = 8
i = 2
z = 2
P = 100
Y = 0


'' Letzte Zeile der Vorgabetabelle
LetzteZeileVorgabe = ActiveSheet.Cells(65536, 1).End(xlUp).Row
nl = LetzteZeileVorgabe + 1

'' Letzte Zeile der Auswertung aus MBM
LetzteZeileSuche = Worksheets("Tabelle1").Cells(65536, 1).End(xlUp).Row
il = LetzteZeileSuche + 1

'' Letzte Zeile der Auswertungstabelle
LetzteZeileAuswertung = Worksheets("Auswertung").Cells(65536, 1).End(xlUp).Row
z = LetzteZeileAuswertung + 1
za = LetzteZeileAuswertung

''Neudimensonierung Matrix
nm = nl - 8
im = il - 2

ReDim PostcodeV(nm, 3)
ReDim PostcodeS(im, 3)


''Einlesen der zu suchenden Adressen
For n = 8 To nl
    PostcodeV(Y, 0) = Array(ActiveSheet.Cells(n, 2).Value)
    PostcodeV(Y, 1) = Array(ActiveSheet.Cells(n, 3).Value)
    PostcodeV(Y, 2) = Array(ActiveSheet.Cells(n, 4).Value)
    PostcodeV(Y, 3) = Array(ActiveSheet.Cells(n, 5).Value)
    Y = Y + 1
    
Next

Y = 0
''Einlesen der zu vergleichenden Adressen
For i = 2 To il
    PostcodeS(Y, 0) = Array(Worksheets("Tabelle1").Cells(i, 6).Value)
    PostcodeS(Y, 1) = Array(Worksheets("Tabelle1").Cells(i, 7).Value)
    PostcodeS(Y, 2) = Array(Worksheets("Tabelle1").Cells(i, 8).Value)
    PostcodeS(Y, 3) = Array(Worksheets("Tabelle1").Cells(i, 9).Value)
    Y = Y + 1
Next

MsgBox UBound(PostcodeV)
MsgBox UBound(PostcodeS)

For n = 0 To UBound(PostcodeV)
     For i = 0 To UBound(PostcodeS)



    Next
Next


''Pause alle 50 Datensätze für 2sekunden
If P = n Then
    Application.Wait Now + TimeSerial(0, 0, 5) 'wartet 2 Sekunden
    P = P + 100
End If

MsgBox nm

End Sub


Mein Ansatz hierzu spukt im Vergleich immer fehler aus, wie würdet ihr vorgehen? Pause ist noch aus dem alten Makro und ich brauche immer die Koplette Zeile.

 

Mfg der Frank


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Arrays miteinander vergleichen
30.08.2018 15:45:30 Frank
NotSolved
30.08.2018 15:46:57 Gast31781
NotSolved
30.08.2018 15:55:51 Gast79109
NotSolved
30.08.2018 21:19:22 Mackie
NotSolved