ich habe eine Datei mit vielen Tabellenblättern auf der jeweils über eine ComboBox ein Diagramm gesteuert wird. Es kann über die Combobox zum Beispiel ein Jahr ausgewählt werden das dann in dem Diagramm angezeigt wird.
Die Quelle der ComoboBox ist ein Zellbereich (im Konkreten Fall D3:D29) der die Jahre enthält, _ allerdings sind hier auch Dubletten (2005, 2005, 2010,2011,2011 etc) enthalten. Damit nun ich nich irgendwo anders die Werte für die ComboBox (ohne Dubletten) speicher muss habe ich folgenden COde entwickelt, der auch gut funktioniert
Private Sub Worksheet_Activate()
Dim T_Blattname, Wertebereich As String
Dim objDic As Object
Dim Bereich As Range
Dim Zelle As Range
T_Blattname = ActiveSheet.Name
Wertebereich = "D3:D29"
Set objDic = CreateObject("Scripting.Dictionary")
With Sheets(T_Blattname)
Set Bereich = .Range(Wertebereich) 'relevanten Bereich ermitteln
End With
For Each Zelle In Bereich
objDic(Zelle.Value) = 0 'Nur Unikate sammeln
Debug.Print Zelle
Next
Sheets(T_Blattname).ComboBox_Jahr.List = objDic.keys 'Unikate der ComboBox zuweisen
End Sub
Nun möchte ich gerne diesen Code in ein eigenes Modul auslagern, damit ich ihn auf unterschiedlichen Tabellenblättern nutzen kann. Da die ComboBoxen auf den unterschiedlichen Tabellenblättern nicht immer gleich heißen, möchte ich gerne an der Stelle
Sheets(T_Blattname).ComboBox_Jahr.List = objDic.keys 'Unikate der ComboBox zuweisen
End Sub
das ComboBox_Jahr durch eine Variable ersetzen. Leider bekomme ich das nicht hin, wenn ich den Steuerelementnamen mit ctrl = "ComboBox_Jahr" als String in einer Variable speichere und mit
Sheets(T_Blattname).ctrl.List = objDic.keys 'Unikate der ComboBox zuweisen
End Sub
kommt die Fehlermeldung dass diese Eigenschaft nicht zulässig sei.Nun stellt sich mir die Frage, ob das überhaupt geht oder obich irgendwie auf dem Holzweg bin....
Vielen Dank im Voraus!