mit folgendem Code fülle ich eine ComboBox in einem Arbeitsblatt
in Abhängigkeit vom Wert einer anderen ComboBox:
Sub Zinsbindung(Produktart As String)
Dim i As Integer
i = Sheets("Produkte").Range("A65536").End(xlUp).Row
Sheets(Produktart).ComboBox2.Clear
For k = 4 To i
If Sheets(Produktart).ComboBox1.Value = Sheets("Produkte").Range("B" & k).Value Then
Sheets(Produktart).ComboBox2.AddItem (Sheets("Produkte").Range("C" & k).Value)
End If
Next k
Sheets(Produktart).ComboBox2.Value = Sheets(Produktart).ComboBox2.List(0)
End Sub
Funktioniert auch wie gewünscht. Ich möchte den Code aber noch erweitern und ihn allgemeingültiger
machen. D.h. ich will beim Aufruf der Methode nicht nur die "Produktart" als Parameter übergeben, sondern
auch die "BoxNr", damit mehrere Boxen mit der selben Methode gefüllt werden können.
Hatte mir das so vorgestellt, dass ich am Anfang der Prozedur die ComboBox einem Objekt zuweise und damit dann weiter arbeiten kann. In etwa so:
Sub Zinsbindung(Produktart As String, BoxNr As Integer)
Dim CB As Object '(oder As ComboBox?)
Set CB = Worksheets(Produktart).OLEObjects("ComboBox" & BoxNr)
MsgBox CB.Value
End Sub
Funktioniert aber leider so nicht. Die Zuweisung klappt, aber bei der MsgBox Ausgabe erhalte
ich einen Laufzeitfehlet 438 - Objekt unterstützt dieses Eigenschaft oder Methode nicht.
Ich dachte, ich kann dann von dem Objekt aus bequem auf die Methoden und Eigenschaften der
ComboBox zugreifen? Wo liegt mein Fehler?
Danke für eure Hilfe!
Gruß
Rudi