Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Namen von Dynamisch erzeugten TextBoxen deklariere


Betrifft: Namen von Dynamisch erzeugten TextBoxen deklariere von: Christof Kauer
Geschrieben am: 18.08.2016 14:13:18

Hallo an Alle,

ich habe folgendes Problem. Ich im untenstehenden Code es geschafft, dass mir eine UserForm mit eine vielzahl an TextBoxen erzeugt wird. Jedoch finde ich nicht herraus wie diese Textboxen nun heißen.

Immer wenn ich jetzt versuche die Werte der Textboxen auszulesen stehe ich vor dem Problem, dass ich nicht den Namen der einzelnen Textboxen kenne und somit immer die meldung erhalten (Variable nicht definiert)

Würde mich freuen, wenn ihr mich in die richtige Richtung schubsen könnt.

Dim theTextBox As Object
Dim textBoxCounter As Long

For textBoxCounter = 1 To AnzahlKontenPrämie1
Set theTextBox = KontoauszügePrämie.Controls.Add("Forms.TextBox.1", "Kontostand" & textBoxCounter, True)
With theTextBox
.Value = Sheets("Datenbank Konten Prämie").Range("L" & (textBoxCounter + 1)).Value
.Left = 90
.Width = 120
.Top = 6 + (36 * textBoxCounter)
End With
Next

  

Betrifft: AW: Namen von Dynamisch erzeugten TextBoxen deklariere von: Daniel
Geschrieben am: 18.08.2016 14:18:18

Hi
statt sich mit zur Laufzeit erzeugten Steuerelementen herumzuärgern, könntest du nicht auch eine Listbox verwenden?
gruß Daniel


  

Betrifft: AW: Namen von Dynamisch erzeugten TextBoxen deklariere von: Christof Kauer
Geschrieben am: 18.08.2016 14:27:55

Hi Daniel,

eine Listbox bringt micht denke ich nicht weiter. Zum einen wegen der Anwenderergonomie und zum anderen da ich in der Listbox je Zeile immer nur einen wert bearbeiten muss.

LG Christof


  

Betrifft: Zur Laufzeit erzeugte TextBoxen ansprechen... von: Case
Geschrieben am: 18.08.2016 15:23:12

Hallo, :-)

packe dir folgendes mal in eine leere UserForm und lass es rennen: ;-)

Option Explicit
Private Sub UserForm_Activate()
    Dim MyBox As Control
    Dim MyTxt As Control
    Dim lngTMP As Long
    With Me
        For lngTMP = 1 To 5
            Set MyTxt = .Controls.Add("Forms.TextBox.1", "TextBox" & lngTMP, True)
            With MyTxt
                .Left = 18
                .Top = 6 + (36 * lngTMP)
                .Width = 175
                .Height = 20
            End With
            Set MyTxt = Nothing
        Next lngTMP
     End With
     For Each MyBox In Me.Controls
        If TypeName(MyBox) = "TextBox" Then
            MyBox.Value = "Test" & Int((100 * Rnd) + 1)
        End If
    Next MyBox
    MsgBox Me.Controls("TextBox3").Text
End Sub
Servus
Case



  

Betrifft: Zur Laufzeit erzeugte TextBoxen ansprechen... von: Case
Geschrieben am: 18.08.2016 15:44:53

Hallo, :-)

bzw. wenn Du eine Laufvariable hast, kannst du die Textboxen auch über "Controls.Item" ansprechen: ;-)

MsgBox Me.Controls.Item("TextBox" & lngX).Value
Servus
Case



  

Betrifft: AW: Zur Laufzeit erzeugte TextBoxen ansprechen... von: Christof Kauer
Geschrieben am: 18.08.2016 16:35:29

Vielen Dank hat mir sehr geholfen


  

Betrifft: AW: Zur Laufzeit erzeugte TextBoxen ansprechen... von: Christof Kauer
Geschrieben am: 18.08.2016 17:27:32

Was mach ich nun verkerht ???

Sheets("Datenbank Konten Prämie").Range("L" & (EintragCounter + 1)).Value = Me.Controls("Kontostand" & EintragCounter).Value
bin echt am verzweifeln


  

Betrifft: AW: Zur Laufzeit erzeugte TextBoxen ansprechen... von: Christof Kauer
Geschrieben am: 18.08.2016 17:35:29

So hat sich erledit der fehler lag zuvor in der Schleife :D


Beiträge aus den Excel-Beispielen zum Thema "Namen von Dynamisch erzeugten TextBoxen deklariere"