in meinem UserForm_UserForm_Initialize() wird über nachfolgenden Code, eine dynamische Anlage von Textfeldern generiert, welche ich jetzt mit der dynamischen Anlage von CommandButton abschließen möchte:
_____________________________________________
Userform:
Dim ID As Integer
Dim obTemp As MSForms.CommandButton
Dim zeilend As String
Dim xposd As Integer
xposd = 50
Workbooks("FF-Kalkulator.xlsm").Sheets("Bestellungen").Activate
zeilend = Worksheets("Bestellungen").Cells(Rows.Count, 1).End(xlUp).Row
If zeilend For ID = 1 To CInt(zeilend)
If Workbooks("FF-Kalkulator.xlsm").Sheets("Bestellungen").Rows(ID).EntireRow.Hidden = False Then
Set colCtl = New Collection
Set obTemp = Me.Controls.Add("Forms.CommandButton.1", "CommandButton" & "cmd" & CStr(ID), True)
With obTemp
.Height = 20
.Width = 60
.Top = xposd
.Left = 395
.BackStyle = fmBackStyleTransparent
.Caption = "Bearbeiten"
.Font.Name = "Arial"
.Font.Size = 10
Set aCommands(ID).DieCmds = obTemp
End With
xposd = xposd + 25
End If
Next ID
Das funktioniert auch soweit gut. Jetzt möchte ich jedoch, dass beim Klick des jeweiligen Buttons, welcher ja variabel sein kann, dass die jeweilige Zeile, neben dem sich dieser Button befindet, angesprochen wird, bspw.:
Dim ie As Integer
Dim ctle As MSForms.TextBox
Dim zeilene As String
Dim xpose As Integer
xpose = 50
Workbooks("FF-Kalkulator.xlsm").Sheets("Bestellungen").Activate
zeilene = Worksheets("Bestellungen").Cells(Rows.Count, 1).End(xlUp).Row
If zeilene For ie = 1 To CInt(zeilend)
If Workbooks("FF-Kalkulator.xlsm").Sheets("Bestellungen").Rows(ie).EntireRow.Hidden = False Then
Set colCtl = New Collection
Set ctle = Me.Controls.Add("Forms.TextBox.1", "TextBoxe" & CStr(i), True)
With ctle
.Height = 26
.Width = 80
.Top = xpose
.Left = 455
.Value = Workbooks("FF-Kalkulator.xlsm").Sheets("Bestellungen").Cells(ie, 6)
.Tag = "Textbox" & i
.BackStyle = fmBackStyleTransparent
.SpecialEffect = fmSpecialEffectFlat
.Locked = True
.Font.Name = "Arial"
.Font.Size = 10
End With
xpose = xpose + 25
End If
Next ie
Über die "aCommands(ID).DieCmds = obTemp" habe ich es bereits hinbekommen, eine Klasse anzusprechen, welche nachfolgend beschrieben ist:
__________________________________________
Klasse:
Option Explicit
Public WithEvents DieCmds As MSForms.CommandButton
Private Sub DieCmds_Click()
DieCmds.ControlTipText = "Geklickt"
DieCmds.BackColor = vbGreen
DieCmds.Font.Bold = True
End Sub
Meine Frage lautet jetzt, auch wenn ich nachvollziehen kann, dass diese eventuell nicht so verständlich formuliert ist, wie ich über einen Klick auf einen jeweiligen Button, die dazugehörige Spalte in eine Textbox übertragen kann. Ähnlich habe ich es bei CheckBoxen bereits hinbekommen, jedoch spreche ich diese einfach über ".value = True Then" an. Hier geht dies ja leider nicht. Habt ihr eine Idee?
Vielen Dank im Voraus.