08.09.2022, 11:57
Hi Leute,
ich benötige mal eine Einschätzung von euch Experten, bevor ich mich ans Programmieren mache. Ein Makro von mir (welches gut funktioniert) ist mir persönlich zu langsam. Es filtert eine Tabelle und kopiert dann die sichtbaren Daten in einen anderen Bereich. Nun bin ich seit kurzem Fan von Arrays geworden und möchte mich dran machen, das Makro zu beschleunigen.
Allerdings kommen nun mehrere Varianten in Frage und, da meine Zeit begrenzt ist, wollte ich nicht alles programmieren, um dann festzustellen, dass kein Geschwindigkeitsboost vorhanden ist. Vll habt ihr eine EInschätzung, welche Variante sich am meisten lohnt.
Ausgangslage:
Ich habe eine unsortierte Tabelle mit ca. 150 Zeilen und 2 Spalten (Name und Zugehörigkeit zu einer Abteilung)
Variante 1:
Ich sortiere die Daten immer zuerst nach Zugehörigkeit, filtere sie dann (beides in Excel) und lese sie ins Array ein, um sie dann aufs Tabellenblatt zu kopieren. Habe ich dadurch einen Mehrwert, weil nur das Kopieren und Einfügen "ersetzt" wird?
Variante 2:
Ich lese die gesamte Tabelle in ein Array ein und lösche dann mit einer for next-Schleife die nicht passenden Daten.
Variante 3:
Google hat mir sowas hier ausgespuckt, allerdings kann ich den Code nicht lesen (noch nie mit dictionary gearbeitet) und weiß nicht, was da passiert.
Weitere Varianten?
Vielleicht gibt es aber ja auch noch eine ganz andere Möglichkeit - ich wäre sehr dankbar für jeden Hinweis :)
Gruß
ich benötige mal eine Einschätzung von euch Experten, bevor ich mich ans Programmieren mache. Ein Makro von mir (welches gut funktioniert) ist mir persönlich zu langsam. Es filtert eine Tabelle und kopiert dann die sichtbaren Daten in einen anderen Bereich. Nun bin ich seit kurzem Fan von Arrays geworden und möchte mich dran machen, das Makro zu beschleunigen.
Allerdings kommen nun mehrere Varianten in Frage und, da meine Zeit begrenzt ist, wollte ich nicht alles programmieren, um dann festzustellen, dass kein Geschwindigkeitsboost vorhanden ist. Vll habt ihr eine EInschätzung, welche Variante sich am meisten lohnt.
Ausgangslage:
Ich habe eine unsortierte Tabelle mit ca. 150 Zeilen und 2 Spalten (Name und Zugehörigkeit zu einer Abteilung)
Variante 1:
Ich sortiere die Daten immer zuerst nach Zugehörigkeit, filtere sie dann (beides in Excel) und lese sie ins Array ein, um sie dann aufs Tabellenblatt zu kopieren. Habe ich dadurch einen Mehrwert, weil nur das Kopieren und Einfügen "ersetzt" wird?
Variante 2:
Ich lese die gesamte Tabelle in ein Array ein und lösche dann mit einer for next-Schleife die nicht passenden Daten.
Variante 3:
Google hat mir sowas hier ausgespuckt, allerdings kann ich den Code nicht lesen (noch nie mit dictionary gearbeitet) und weiß nicht, was da passiert.
Code:
Function REFERENZ(rng As Range) As String
Dim dic As Object, c As Range
Dim max As Long
Set dic = CreateObject("Scripting.Dictionary")
For Each c In rng
If Not c.EntireRow.Hidden Then dic(c.Value) = dic(c.Value) + 1
Next c
With Application
max = .Match(.max(dic.Items), dic.Items, 0)
REFERENZ = dic.keys()(max - 1)
End With
End Function
Weitere Varianten?
Vielleicht gibt es aber ja auch noch eine ganz andere Möglichkeit - ich wäre sehr dankbar für jeden Hinweis :)
Gruß