ich möchte in Abhängigkeit vom Inhalt der Zelle S4 (Gerätetyp)die dazu gehörige Userform öffnen. Dazu setzte ich mir den Namen der Userform zusammen und mit diesem Code:
Dim UFS As String
Dim SWT As String
ActiveSheet.Name = Range("Q4").Value
SWT = Range("S4").Value
Range("U4") = "UF_" & Right(SWT, 6)
UFS = Range("U4").Value
VBA.UserForms.Add(UFS).Show
klappt das auch. ABER: In der Userform wird über ein Klassenmodul das _Click-Event für bis zu 48 Label festgelegt. Hier steigt Excel mit "Laufzeitfehler9, Index außerhalb des gültigen Bereiches" aus.
der Code dazu:
Dim Zeile As Long
Dim AB As String
AB = UF_J9022A.TB_Switchinfo_Name
Zeile = PortLabelJ9022A.Caption + 2
UF_J9022A.Lbl_Port = PortLabelJ9022A.Caption
UF_J9022A.TB_Standort = Sheets(AB).Cells(Zeile, 9).Value - hier stoppt der Code, weil AB=""
UF_J9022A.TB_Gebaeude = Sheets(AB).Cells(Zeile, 10).Value
UF_J9022A.TB_Raum = Sheets(AB).Cells(Zeile, 11).Value
UF_J9022A.TB_Dose = Sheets(AB).Cells(Zeile, 12).Value
Die Variable AB bleibt schlicht leer. Da die Werte in TB_Switchinfo_Name übernommen werden und das ganze bei Aufruf der Userform über einen Button (UF_xxx.show) reibungslos funktioniert, bin ich ratlos. Habt ihr eine Idee dazu? Gern auch Alternativ-Vorschläge ala Case... es gibt 4 Gerätetypen (jeweils ein Gerät pro Sheet) und x Geräte. Dazu möchte ich eben in Abhängigkeit vom Gerätetyp im Activate-Ereignis des Arbeitsblattes die passende UF öffnen.Danke und Gruß
Vic