ich hänge schon seit einiger Zeit an einem Problem und hoffe mir kann hier jemand weiterhelfen.
Ich habe über eine For-Schleife Spinbuttons und Labels in abhängikeit von der gespeicherten Zeichenanzahl in einem Array (Hier KK_v()) erstellt.
Jetzt möchte ich durch betätigen der Spinbuttons die Werte in den Labels ändern, garnicht so leicht wenn alles dynamisch erstellt wurde.
Ich habe es schon soweit hinbekommen, dass das letzte erstellte Label und der letzte erstellte Spinbutton das gwünschte Ergebnis liefern, allerdings funktioniert das bei den vorherigen Labels und Spinbuttons nicht.
Hier ersteinmal der Code zum erstellen der Spinbuttons und Labels(Die Variablen "omega" und "omega_speicher" sind nur zur richtigen Platzierung der Controls):
Option Explicit
'das original MS Forms Spin Button
Private myOrgSpin As MSForms.Spinbutton
'die Klasse für die zusätzliche Funktionen / Abfangen der Ereignisse
Private mySpin As New MySpinButton
Private myLabel As MSForms.Label
Dim S As Integer
Dim leer As Integer
Dim omega As Integer
Dim omega_speicher As integer
For S = 1 To x - 1
omega = 0
For leer = 1 To UBound(KK_v)
If KK_v(leer, S) 0 Then
Set myOrgSpin = mySpin.CreateButton(Me, "Spin" & leer & S)
With myOrgSpin
.Height = 15
.Left = 537
.Top = omega_speicher + omega
.Width = 50
.Min = 1
.Max = 2
End With
omega = omega + 15
End If
Next leer
omega = 0
For leer = 1 To UBound(KK_v)
If KK_v(leer, S) 0 Then
Set myLabel = Me.Controls.Add("Forms.Label.1", "MyLabel" & leer & S)
With myLabel
.Height = 15
.Left = 517
.Top = omega_speicher + omega
.Width = 20
End With
omega = omega + 15
zähler = zähler + 1
'des Objekt des dynamisch generierten Labels wird zugewiesen
Set mySpin.ChangeLabel = myLabel
End If
Next leer
Next S
So und jetzt der Code der zugehörigen Klasse "MySpinButton"
Option Explicit
Private WithEvents orgSpin As MSForms.Spinbutton
Private chLabel As MSForms.Label
Public Property Get ChangeLabel() As MSForms.Label
Set ChangeLabel = chLabel
End Property
Public Property Set ChangeLabel(Obj As MSForms.Label)
Set chLabel = Obj
chLabel.Caption = orgSpin.Value
End Property
Public Function CreateButton(UserFrm As UserForm, Name As String, _
Optional visible As Boolean = True) As MSForms.Spinbutton
Set orgSpin = UserFrm.Controls.Add("Forms.SpinButton.1", Name, visible)
Set CreateButton = orgSpin
End Function
Private Sub orgSpin_Change()
If Not chLabel Is Nothing Then
End If
End Sub
Also hätte hier jemand eine Idee wie die Werte der Labels durch das betätigen der jeweiligen erstellten Spinbuttons geändert werden können ?Würde mich über Hilfe oder Tipss sehr freuen.
Gruß
Jaro Naw