VBA Hilfe benötigt
13.09.2018 08:42:24
Renan
ich habe ein Makro geschrieben, dass alle einzigartigen Einträge in einem ListObject Column ausfindig macht und sie mir als Array zurückgibt.
Also wenn die ListObject Column "NAME" folgende Einträge einhält:
HANS
PETER
PETER
HANS
JÜRGEN
HANS
Wird mir als Array :
HANS
PETER
JÜRGEN
zurückgegeben.
Nun möchte ich mein Makro irgendwo so erweitern, dass es nicht nur die "einzigartigen Einträge" aus einer Tabellenspalte sondern aus mehreren Tabellenspalten ausgibt.
Als Beispiel
Tabelle 1: Spalte NAME:
HANS
PETER
PAUL
HANS
Tabelle 2: Spalte NAME:
JÜRGEN
HANS
PETER
Das Makro soll folgenden Array zurückgeben:
HANS
PETER
PAUL
JÜRGEN
Also einfach das gleiche Prinzip, nur tabellenübergreifend. Mit insgesamt 3 unterschiedlichen Tabellen (die Zufällig über die gleiche Spalte "Name" verfügen).
Hier ist mein aktuell funktionierendes Makro (funktioniert nur für eine Tabelle):
' Funktion: Durchsucht eine Spalte des Listenbereichs (Tabelle) nach unterschiedlichen Einträ _
gen und gibt diese in Form eines Arrays zurück
Function ListObjectFilter(WorksheetName As String, tblName As String, tblHeader As String) As _
_
Variant
Dim dict As Object, tblColumn, j, myArray
Set dict = CreateObject("Scripting.Dictionary")
tblColumn = Worksheets(WorksheetName).ListObjects(tblName).ListColumns(tblHeader). _
DataBodyRange
With dict
For Each j In tblColumn
If Not (j = Empty Or .Exists(j)) Then .Add j, Empty
Next j
End With
myArray = dict.keys
ListObjectFilter = myArray
End Function
Kann mir jemand dabei weiterhelfen bitte? :)