Herbers Excel-Forum - das Archiv
Textbox in variablen Frame
Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Betrifft: Textbox in variablen Frame
von: Stephan Mett
Geschrieben am: 22.12.2006 13:24:39
Hallo zusammen,
ich versuche, eine variable Anzahl von Datenfeldern einer Tabelle über eine Userform abzufragen. Jeder vorhandene Bank (b) soll ein separater Frame zugeordnet werden. In diesem Frame sollen als Textfelder die Konten (k) der entsprechenden Bank aufgeführt werden.
Userform1.Controls.Add("Forms.TextBox.1", "Textbox." & Konto, True)
Setzt mir zwar die korrekten Konten-Textfelder aber eben nicht in den dafür vorgesehenen Frame. Es müsste also soetwas stehen wie:
Userform1.(Frame.b).Controls.Add("Forms.TextBox.1", "Textbox." & Konto, True)
Wobei Frame.b eben der Frame der entsprechenden Bank sein soll.
Hat jemand eine Idee?
Danke vorab.
Stephan
Betrifft: AW: Textbox in variablen Frame
von: Heiko S.
Geschrieben am: 22.12.2006 13:45:50
Hallo Stepahn,
entweder so wenn auch die Frames just in Time produziert werden.
Private Sub Eins()
Dim objF As Object
Set objF = UserForm1.Controls.Add("Forms.Frame.1", "Frame", True)
objF.Controls.Add "Forms.TextBox.1", "Textbox." & 1, True
MsgBox objF.Name
Set objF = Nothing
End Sub
Oder so wenn die Frames schon da sind.
Private Sub Zwei()
Dim objF As Object
' Frame auf deine Namen anpassen.
Set objF = Me.Controls("Frame")
objF.Controls.Add "Forms.TextBox.1", "Textbox." & 12, True
End Sub
Gruß Heiko
PS: Rückmeldung wäre nett !
Betrifft: Oder so ohne Set Anweisung
von: Heiko S.
Geschrieben am: 22.12.2006 13:48:00
Hallo
Private Sub Drei()
Me.Controls("Frame").Controls.Add "Forms.TextBox.1", "Textbox." & 12, True
End Sub
Gruß Heiko
PS: Rückmeldung wäre nett !
Betrifft: Textbox in zu produzierenden Frame
von: Stephan Mett
Geschrieben am: 22.12.2006 14:38:03
So richtig hab ich das noch nicht umsetzen können. Mein Code ist folgender:
For bank = 1 To 5 'Anzahl der Banken = Anzahl der Frames
For Konto = 4 To 15 'Anzahl der Konten = Anzahl der Textboxes
Set frame = Kontostandsabfrage.Controls.Add("forms.frame.1", "Frame." & bank, True)
With frame
.Caption = datei4.Cells(bank + 3, 2)
.Top = 10 + bank * 10
.Left = 20 + bank * 10
End With
Dim objF As Object
Set objF = Kontostandsabfrage.Controls.Add("Forms.Frame.1", "Frame" & bank, True)
objF.Controls.Add "Forms.TextBox.1", "Textbox." & 1, True
Set TextBox = Kontostandsabfrage.objF.Name.Controls.Add("Forms.TextBox.1", "frame" & bank & ".Textbox." & Konto, True)
With TextBox
.Top = 20 * Konto
.Value = datei4.Cells(Konto, 3)
End With
Set objF = Nothing
Next Konto
Next bank
Dass die Textboxes alle noch nicht an ihrem Ort sind, spielt erst mal keine Rolle, ich krieg noch eine Fehlermeldung...
Danke.
Betrifft: AW: Textbox in zu produzierenden Frame
von: Heiko S.
Geschrieben am: 22.12.2006 19:17:28
Hallo Stephan,
deine Versuche sind ein bisschen wirr und schwer nachzuvollziehen, aber mit diesem Code kriege ich fünf Frames auf mein Userform mit der entsprechenden Anzahl an Textboxen.
Private Sub CommandButton1_Click()
Dim Bank, Konto, Frame, TextBox
For Bank = 1 To 5 'Anzahl der Banken = Anzahl der Frames
Set Frame = Kontostandabfrage.Controls.Add("Forms.Frame.1", "Frame." & Bank, True)
With Frame
.Caption = "Frame " & Bank
'.Caption = datei4.Cells(bank + 3, 2)
.Top = 10 + Bank * 10
.Left = 20 + Bank * 10
For Konto = 4 To 15 'Anzahl der Konten = Anzahl der Textboxes
Set TextBox = .Controls.Add("Forms.TextBox.1", "Frame" & Bank & ".Textbox." & Konto, True)
With TextBox
.Top = 20 * Konto
.Value = Bank * Konto
End With
Set TextBox = Nothing
Next Konto
End With
Set Frame = Nothing
Next Bank
End Sub
Gruß Heiko
PS: Rückmeldung wäre nett !
Betrifft: AW: Textbox in zu produzierenden Frame
von: Stephan Mett
Geschrieben am: 23.12.2006 22:42:38
Perfekt, so krieg ich es hin. Vielen Dank und ein besinnliches Weihnachtsfest!
Stephan