05.01.2023, 11:38
Hallo zusammen,
ich habe ein File, auf dessen Basis wöchentlich ein Report an die anderen Abteilungen (Umsätze) versendet wird.
Dieses File beinhaltet alle gebuchten und reservierten Aufträge sowie welche Firmensparte den Umsatz "erzielt" hat bzw. bei Reservationen (hoffentlich) erzielen wird.
Da es von Woche zu Woche zu Änderungen kommt, haben die Rohdaten gut und gerne zu Jahresende 100'000 Zeilen (auch, da gewisse Aufträge doppelt vorkommen bzw. aufgrund gewisser Spezifikationen anders behandelt/geliefert werden als andere).
Mein Problem: Ich möchte gerne, dass ich die Datensätze der aktuellen Woche mit dem Datensatz der Vorwoche vergleichen kann, um zu schauen, welche Aufträge neu hinzugekommen, verändert oder komplett storniert wurden.
Ich habe es per VBA mit einer Schleife durch ein bzw. zwei Arrays versucht, jedoch dauerte dies in Spitzenzeiten bis zu 10 Minuten (trotzden MAssnahmen mit ScreenUpdating = false usw.). Basis für den Vergleich waren die ID's, jedoch kann es vorkommen, dass eine ID in der nächsten Woche gelöscht bzw. durch eine neue ersetzt wird, der Name jedoch gleich bleibt.
Mein Versuch bisher:
Allerdings bekomme ich immer die Fehlermeldung "Typen unverträglich", kann aber nicht dahintersteigen, warum der Fehler auftritt.
Bin was Arrays angeht noch nicht ganz fit und daher froh um Denkanstösse eurerseits.
Oder gibt es eine Formellösung, welche ich nicht auf dem Schirm hatte?
Danke euch schonmal für die Hilfe und nachträglich frohes neues Jahr.
Liebe Grüsse,
Domi
ich habe ein File, auf dessen Basis wöchentlich ein Report an die anderen Abteilungen (Umsätze) versendet wird.
Dieses File beinhaltet alle gebuchten und reservierten Aufträge sowie welche Firmensparte den Umsatz "erzielt" hat bzw. bei Reservationen (hoffentlich) erzielen wird.
Da es von Woche zu Woche zu Änderungen kommt, haben die Rohdaten gut und gerne zu Jahresende 100'000 Zeilen (auch, da gewisse Aufträge doppelt vorkommen bzw. aufgrund gewisser Spezifikationen anders behandelt/geliefert werden als andere).
Mein Problem: Ich möchte gerne, dass ich die Datensätze der aktuellen Woche mit dem Datensatz der Vorwoche vergleichen kann, um zu schauen, welche Aufträge neu hinzugekommen, verändert oder komplett storniert wurden.
Ich habe es per VBA mit einer Schleife durch ein bzw. zwei Arrays versucht, jedoch dauerte dies in Spitzenzeiten bis zu 10 Minuten (trotzden MAssnahmen mit ScreenUpdating = false usw.). Basis für den Vergleich waren die ID's, jedoch kann es vorkommen, dass eine ID in der nächsten Woche gelöscht bzw. durch eine neue ersetzt wird, der Name jedoch gleich bleibt.
Mein Versuch bisher:
Code:
Dim ArrayAktuell As VariantCode:
Dim ArrayVorwoche As VariantCode:
Dim i As LongCode:
Dim letzteZeile As LongCode:
Dim ZeileEintrag As LongCode:
'Sammelt die Daten der aktuellen WocheCode:
With Tabelle2Code:
letzteZeile = .Cells(Rows.Count, 1).End(xlUp).RowCode:
ArrayAktuell = .Range(.Cells(2, 1), .Cells(letzteZeile, 5))Code:
End WithCode:
'Sammelt die Daten der VorwocheCode:
With Tabelle1Code:
letzteZeile = .Cells(Rows.Count, 1).End(xlUp).RowCode:
ArrayVorwoche = .Range(.Cells(2, 1), .Cells(letzteZeile, 5))Code:
End WithCode:
For i = 1 To UBound(ArrayAktuell)Code:
Code:
'Wenn ID gefundenCode:
If WorksheetFunction.Index(ArrayAktuell, Application.Match(ArrayAktuell(i, 1), ArrayVorwoche, 0)) > 0 ThenCode:
Code:
'nichts passiert, da okCode:
Code:
ElseIf WorksheetFunction.Index(ArrayAktuell, Application.Match(ArrayAktuell(i, 1), ArrayVorwoche, 0)) = 0 ThenCode:
Code:
ZeileEintrag = Tabelle3.Cells(Rows.Count, 1).End(xlUp).Row + 1Code:
Code:
Tabelle3.Cells(ZeileEintrag, 1).Value = ArrayAktuell(i, 1)Code:
Code:
End IfCode:
Code:
Next iCode:
End SubAllerdings bekomme ich immer die Fehlermeldung "Typen unverträglich", kann aber nicht dahintersteigen, warum der Fehler auftritt.
Bin was Arrays angeht noch nicht ganz fit und daher froh um Denkanstösse eurerseits.
Oder gibt es eine Formellösung, welche ich nicht auf dem Schirm hatte?
Danke euch schonmal für die Hilfe und nachträglich frohes neues Jahr.
Liebe Grüsse,
Domi

![[-]](https://www.clever-excel-forum.de/images/collapse.png)