Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1312to1316
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Multipage Userform und Klassenmodul

Multipage Userform und Klassenmodul
08.05.2013 10:04:26
Peter
Hallo alle zusammen,
ich habe ein Problem mit meinem (ersten) Mulitpage-Userform.
Ich möchte eine Multipage in einem Userform mit gleichartigen Buttons füllen, welche ihr Funktion aus der Klasse CB_Rueck erhalten:
'==========================================================
'UserForm
'==========================================================
Option Explicit
Public m_RL_TB As New CB_Rueck
Private Sub UserForm_Activate()
Dim RLTB As Control 'MSForms.ToggleButton
Dim intAbstand As Integer
Dim MP_i As Integer
Dim Sch_i As Integer
Dim Left_Shift As Integer
intAbstand = 20
For MP_i = 1 To 20   'Schleife zum Durchlaufen der einzelnen Multipage Pages
For Sch_i = 1 To 34
If Sch_i > 17 Then
Left_Shift = 135
Else
Left_Shift = 0
End If
If RL_But_arr(Sch_i, MP_i) = 1 Then
Set RLTB = RL_SL_List.RL_MP.Pages.Item(MP_i-1).Controls.Add("Forms.ToggleButton.1", " _
cntBut" & Sch_i, True)
With RLTB
.Left = 15 + Left_Shift
.Top = intAbstand * (Sch_i Mod 17) - 5
.Width = 120
.Height = 18
.Caption = Tabelle01.Cells(Sch_i + 3, 2).Value & " " & Tabelle01.Cells(Sch_i + 3, 3) _
.Value
.Tag = Sch_i
.FontSize = 9
.Font.Bold = True
End With
Set Me.RL_MP.Pages.Item(MP_i - 1).m_RL_TB(Sch_i).c_RL_TB = Me.RL_MP.Pages.Item(MP_i - 1) _
.RLTB
End If
Next Sch_i
Next MP_i
End Sub

'==========================================================
'Klassenmodul
'==========================================================
Option Explicit
Public WithEvents c_RL_TB As MSForms.ToggleButton
Private Sub c_RL_TB_Click()
MsgBox "Das klappt"
End Sub

Wenn ich den Code aber ausführe, dann erhalte ich immer "Laufzeitfehler 438. Objekt unterstützt diese Eigenschaft nicht" Ich bin langsam echt am verzweifeln, denn wenn ich das gleiche Vorhaben im Userform selbst anwende, funktioniert meine Variante bestens... Was muss ich bei Multipages anders machen? Ich habe die vom Debugger angemahnte Stelle im Code markiert.
Vielen Dank schon mal im Voraus!
VG Peter

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Multipage Userform und Klassenmodul
08.05.2013 10:06:01
Peter
Entschuldigung, ich hab die Markierung im Code vergessen.
Es handelt sich umd die Zeile:
Set Me.RL_MP.Pages.Item(MP_i - 1).m_RL_TB(Sch_i).c_RL_TB = Me.RL_MP.Pages.Item(MP_i - 1) _
.RLTB

Vielen Dank nochmal!
Peter

AW: Multipage Userform und Klassenmodul
08.05.2013 10:45:58
Nepumuk
Hallo,
damit: Public m_RL_TB As New CB_Rueck
erstellst du gerade mal eine Instanz der Klasse. Da bringst du also genau einen Button rein.
Und was soll den das werden?
Set Me.RL_MP.Pages.Item(MP_i - 1).m_RL_TB(Sch_i).c_RL_TB = Me.RL_MP.Pages.Item(MP_i - 1) _
.RLTB

Den Button an die Klasse übergeben, so:
Set m_RL_TB.c_RL_TB = RLTB
Zu Controls in Klassen findest du im Archiv jede Menge Beispiele.
Was ich noch anmerken darf,
Wie kann man nur auf solche Bezeichnungen kommen. Denkst du, wenn du in einem Jahr eine Änderung in die Mappe einarbeiten musst, dass dir dann auf einen Blick klar was If RL_But_arr(Sch_i, MP_i) = 1 Then ist?
Meiner Meinung nach der unleserlichste Code der letzten 20 Jahre.
Gruß
Nepumuk

Anzeige
AW: Multipage Userform und Klassenmodul
08.05.2013 11:46:01
Peter
Hallo Nepumuk,
vielen Dank erst mal für deien Hilfe, deinen Vorschlag habe ich zwar schon mal ausprobiert, da hats aber nicht geklappt... Im Gegensatz zu jetzt.
Mag sein, dass der Code für dich unleserlich erscheint, ich habe ihn aber mehr als ausführlich dokumentiert, sodass ich damit kein Problem haben dürfte. Außerdem arbeite ich an diesem Projekt (mit Unterbrechungen und abhängig vom Auftauchen von Notwendigkeiten) bereits seit 3 Jahren. Bisher konnte ich mit meiner Dokumentation des Codes noch jeden Code-Abschnitt lesen.
Ich hätte evtl. die Doku nicht entfernen sollen. Falls ich dir damit Schierigkeiten gemacht habe, dann entschuldige ich mich dafür ausdrücklich!
Vielen Dank nochmal für Deine Hilfe
Peter

Anzeige
Was ist denn noch offen? Gruß owT
08.05.2013 12:09:49
Luc:-?
:-?

AW: Was ist denn noch offen? Gruß owT
08.05.2013 12:40:09
Peter
Eigentlich ist alles erledigt :-)
Vielen Dank nochmal!
Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige