Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1856to1860
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 von zwei Arrays

Vergleich von zwei Arrays
24.11.2021 09:00:47
zwei
Moin,
mit folgendem Code will ich die anhand der Spalte AC in Quell- und Zieldatei vergleichen, welche Zeilen zusammengehören und dann die Werte aus den Spalten N-S aus von der Quelle in das Ziel übertragen.
Allerdings wird nicht anhand der Spalte AC geprüft, welche Zeilen von Quelle und Ziel zusammengehören, sondern einfach alles in gleicher Reihenfolge rüber kopiert.
Erkennt jemand, woran es hakt?

Sub DatenuebernahmeJahre(strTabelleJahr As String)
Dim Dateiname
Dim wksQuelldatei, wksZieldatei As Worksheet
Dim lngQuelleIndex, lngZielIndex, s As Long
Dim arrQuelleWerte, arrQuelleID
Dim arrZielWerte, arrZielID
Dim dic As Object
Dim rngQuelleWerte, rngQuelleID As Range
Dim rngZielWerte, rngZielID As Range
Dateiname = Application.GetOpenFilename(filefilter:="xlsm-Dateien (*.xlsm), *.*)", Title:="Quelldatei auswählen")
If Dateiname = "Falsch" Then
MsgBox "Keine Datei ausgewählt!"
Else
If Dateiname  False Then
Workbooks.Open (Dateiname)
Set wksQuelldatei = ActiveWorkbook.Sheets(strTabelleJahr)
Set wksZieldatei = ThisWorkbook.Sheets(strTabelleJahr)
'Autofilter in Quelldaten löschen
If wksQuelldatei.FilterMode Then
wksQuelldatei.ShowAllData
End If
Set rngQuelleID = wksQuelldatei.UsedRange.Columns(29)
Set rngQuelleWerte = wksQuelldatei.UsedRange.Range("N:S")
Set rngZielID = wksZieldatei.UsedRange.Columns(29)
Set rngZielWerte = wksZieldatei.UsedRange.Range("N:S")
arrQuelleWerte = rngQuelleWerte.Value
arrQuelleID = rngQuelleID.Value
arrZielWerte = rngZielWerte.Value
arrZielID = rngZielID.Value
Set dic = CreateObject("Scripting.Dictionary")
For lngQuelleIndex = 1 To UBound(arrQuelleID, 1)
dic(arrQuelleID(lngQuelleIndex, 1)) = lngQuelleIndex
Next
For lngQuelleIndex = 3 To UBound(arrZielID, 1)
If dic.exists(arrZielID(lngQuelleIndex, 1)) Then
lngZielIndex = dic(arrZielID(lngQuelleIndex, 1))
For s = 1 To UBound(arrQuelleWerte, 2)
arrZielWerte(lngQuelleIndex, s) = arrQuelleWerte(lngQuelleIndex, s)
Next
End If
Next
'Autofilter in Buchungen prüfen löschen
If wksZieldatei.FilterMode Then
wksZieldatei.ShowAllData
End If
rngZielWerte.Value = arrZielWerte
wksQuelldatei.Parent.Close False
End If
End If
End Sub
Danke euch :)

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergleich von zwei Arrays
24.11.2021 09:48:12
zwei
Hi,
geht es denn hier https://www.herber.de/forum/messages/1857969.html auch noch weiter, oder hat es sich für dich erledigt?
Dann wäre es schön, wenn du das mit einer abschließenden Antwort kenntlich machen könntest, da ich immer wieder mal nachschaue, ob du geantwortet hast.
(an andere Beiträge von dir, z Bsp vom 19.11, bei denen von dir auch noch Antworten fehlen, denke ich dabei gar nicht)
Ciao
Thorsten
Anzeige

297 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige