Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
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

Ansprechen von dyn. erstellten Textboxen

Ansprechen von dyn. erstellten Textboxen
11.07.2020 14:24:55
dyn.
Hallo zusammen,
ich bin dabei für meine Studienarbeit eine kleine Datenbank anzulegen. Dabei habe ich eine Userform erstellt mit welcher ich Daten eingeben kann und die dann in ein Excel Blatt abgespeichert werden.
Thema ist, dass ich unterschiedliche Geräte anlegen möchte die unterschiedliche Spezifikationen haben und mit der Zeit erweitert werden.
Auf der Hauptseite befinden sich in einer Spalte einige Spezifikationen, welche aber über die Zeit (je nach Gerätetyp) erweitert werden. Für die Spalte habe ich ein Skript geschrieben, welches dynamisch alle
Werte aus der der Spalte ausliest und in der Userform geordnet mit Label und TextBox rechts daneben ausgibt. In diese TextBox möchte ich die entsprechenden Werte eintragen und schließlich wieder auf einer separaten Seite abspeichern.
Soweit so gut. Das erzeugen gelingt mir, nur habe ich nach einiger Recherche noch keinen Weg gefunden die TextBoxen anzusprechen um die eingetragenen Werte in der UserForm abzuspeichern. Könnt ihr mir da einen Lösungsweg geben?
  • 
    Private Sub UserForm_Initialize()
    Dim w As Integer
    'Range definieren
    Dim rng As range
    Set rng = Sheet1.range(Sheet1.Cells(7, 6), Sheet1.Cells(Sheet1.Rows.Count, 2).End(xlUp))
    w = 10
    'Label + Textbox erstellen
    For Each rng In Worksheets("Spezifikationen").range("G6:G35")
    If rng  "" Then
    Dim label As MSForms.label
    Set label = Me.FrameSpezifikationen.Controls.Add("Forms.Label.1", "label", True)
    With label
    .Caption = rng.Value
    .Left = 9
    .Top = w + 4
    .Height = 16
    .Width = 150
    End With
    Dim TextBoxSpezifikation2 As MSForms.TextBox
    Set TextBoxSpezifikation2 = Me.FrameSpezifikationen.Controls.Add("Forms.TextBox.1",  _
    "TextBoxSpezifikationen2", True)
    With TextBoxSpezifikation2
    .Left = 130
    .Top = w
    .Height = 16
    .Width = 140
    End With
    w = w + 16
    End If
    Next rng
    Me.FrameSpezifikationen.ScrollHeight = w + 5
    End Sub
    

  • 6
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Ansprechen von dyn. erstellten Textboxen
    11.07.2020 15:43:58
    dyn.
    Wie immer:
    Me.Textbox1.Text z.B.
    AW: Ansprechen von dyn. erstellten Textboxen
    11.07.2020 17:58:07
    dyn.
    Zeig und mal dein Machwerk. Ich schätze wir haben funktionalere Ideen zur Umsetzung deiner UserForm.
    In einer Datenbank (Tabellenblatt) sollten eher keine Formularsteuerelemente eingebaut werden. Die Tabelle dient nur der Datensammlung.
    AW: Ansprechen von dyn. erstellten Textboxen
    11.07.2020 15:55:14
    dyn.
    Hallo,
    du musst den TextBoxen laufende Namen geben. Dann kannst du sie mit:
    Controls("TextBox" & CStr(lngIndex))
    
    ansprechen.
    Gruß
    Nepumuk
    AW: Ansprechen von dyn. erstellten Textboxen
    11.07.2020 18:00:02
    dyn.
    Vielen Dank schonmal für die Tipps! Ich versuche diese umzusetzen, komme aber nicht so richtig voran.
    Wie greife ich jetzt auf die dynamisch angelegten TextBoxen mit: UserForm1.Controls("TextBox" & CStr(lngIndex)) zu? Die Werte sollen dann wie im Code Spalte für Spalte angelegt werden.
        Dim rngS As range
    Set rngS = Sheet1.range(Sheet1.Cells(7, 6), Sheet1.Cells(Sheet1.Rows.Count, 2).End(xlUp))
    Dim lngIndex As Long
    For Each rngS In Worksheets("Spezifikationen").range("G6:G35")
    .ActiveSheet.Cells(4, 6 + i) = rngS.Value
    .ActiveSheet.Cells(5, 6 + i) = UserForm1.Controls("TextBox" & CStr(lngIndex)) 'Controls  _
    einstellen
    i = i + 1
    Next rngS
    

    Anzeige
    AW: Ansprechen von dyn. erstellten Textboxen
    12.07.2020 11:07:00
    dyn.
    Hallo,
    im Prinzip so:
    Dim rngS As Range
    Set rngS = Sheet1.Range(Sheet1.Cells(7, 6), Sheet1.Cells(Sheet1.Rows.Count, 2).End(xlUp))
    Dim lngIndex As Long

    For Each rngS In Worksheets("Spezifikationen").Range("G6:G35")
        lngIndex = lngIndex + 1
        .ActiveSheet.Cells(4, 6 + i) = rngS.Value
        .ActiveSheet.Cells(5, 6 + i) = Controls("TextBox" & CStr(lngIndex)).Text 'Controls einstellen
        i = i + 1
    Next rngS

    Gruß
    Nepumuk
    Anzeige
    AW: Ansprechen von dyn. erstellten Textboxen
    11.07.2020 18:02:53
    dyn.
    Edit: Dieser Code befindet sich unter dem Abspeicherbutton

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige