Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: TextBox automatisch erzeugen und füllen

TextBox automatisch erzeugen und füllen
22.02.2013 09:08:19
bene
Guten Morgen,
auf der Suche nach einem VBA-Script welches TextBoxen in einer Userform automatisch erzeugt bin ich hierdrauf gestoßen:
Private colCtl As New Collection
Private Sub CommandButton1_Click()
Dim i As Integer
Dim ctl As MSForms.TextBox
Dim zeilen As String
zeilen = Worksheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row
If zeilen 

Bei einem klick auf den CommandButton werden soviele TextBoxen erzeugt wie es beschriebene Zeilen gibt.
Das klappt soweit auch gut, jetzt möchte ich aber diese neu erstellten TextBoxen auch mit Inhalt befüllen und zwar von Zelle A1 - A letzte Zeile.
Wenn ich ganz normal versuche die Zellen an die TextBoxen zu übergeben sagt Excel mir das Diese nicht vorhanden sind.
Ich hoffe Ihr könnt mir helfen.
Gruß
Bene

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TextBox automatisch erzeugen und füllen
22.02.2013 09:37:31
hary
Moin Bene
Versuch's so.
Dim colCtl
Dim i As Integer
Dim ctl As MSForms.TextBox
Dim zeilen As String
zeilen = Worksheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row
If zeilen 

gruss hary

AW: TextBox automatisch erzeugen und füllen
22.02.2013 10:33:23
bene
Danke für die schnelle Antwort, klappt wunderbar!
Ich habe jetzt noch neben jeder erzeugten TextBox eine CheckBox erzeugt. Gibt es eine Möglichkeit, dass alle Inhalte der TextBoxen wo die CheckBox auf "True" steht in ein anderes Arbeitsblatt kopiert werden?
Gruß
Bene
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

TextBox automatisch erzeugen und füllen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues UserForm hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (deineArbeitsmappe)“.
    • Wähle „Einfügen“ und dann „UserForm“.
  4. Füge einen CommandButton zur UserForm hinzu:

    • Wähle „Toolbox“ aus und ziehe den CommandButton auf die Form.
  5. Füge den folgenden VBA-Code ein, um TextBoxen dynamisch zu erstellen:

    Private colCtl As New Collection
    
    Private Sub CommandButton1_Click()
       Dim i As Integer
       Dim ctl As MSForms.TextBox
       Dim zeilen As Long
       zeilen = Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
    
       For i = 1 To zeilen
           Set ctl = Me.Controls.Add("Forms.TextBox.1", "TextBox" & i)
           ctl.Top = 10 + (i - 1) * 20
           ctl.Left = 10
           ctl.Width = 100
           ctl.Value = Worksheets("Tabelle1").Cells(i, 1).Value ' Zelle A1 bis A letzte Zeile
           colCtl.Add ctl
       Next i
    End Sub
  6. Schließe den VBA-Editor und kehre zu Excel zurück.

  7. Starte die UserForm durch einen Doppelklick auf den CommandButton.


Häufige Fehler und Lösungen

  • Fehler: „Die TextBoxen sind nicht vorhanden.“

    • Lösung: Stelle sicher, dass die TextBoxen in der UserForm erstellt werden, bevor du versuchst, auf sie zuzugreifen. Verwende den Code zur Erstellung der TextBoxen wie oben beschrieben.
  • Fehler: „Der Wert kann nicht gesetzt werden.“

    • Lösung: Überprüfe, ob die Zellen, die du zuweisen möchtest (z.B. A1 bis A letzte Zeile), tatsächlich Werte enthalten.

Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du TextBoxen auch manuell über die Entwicklertools einfügen:

  1. Aktiviere die Entwicklertools:

    • Gehe zu „Datei“ > „Optionen“ > „Menüband anpassen“ und aktiviere „Entwicklertools“.
  2. Füge eine TextBox hinzu:

    • Klicke auf „Entwicklertools“ > „Einfügen“ und wähle die TextBox aus.

Das manuelle Einfügen ist jedoch weniger flexibel als die Verwendung von VBA.


Praktische Beispiele

Ein häufiges Szenario ist das Erstellen von TextBoxen, um Benutzereingaben zu sammeln. Du kannst die UserForm so anpassen, dass alle TextBoxen mit Werten aus einer Liste gefüllt werden. Hier ein einfaches Beispiel:

  • Erstelle eine Excel-Tabelle mit Werten in Spalte A.
  • Verwende den obigen VBA-Code, um die TextBoxen in einer UserForm automatisch zu erstellen und mit diesen Werten zu füllen.

Tipps für Profis

  • Nutze die With-Anweisung, um den Code für das Erstellen von TextBoxen zu optimieren. Beispiel:

    With ctl
       .Top = 10 + (i - 1) * 20
       .Left = 10
       .Width = 100
       .Value = Worksheets("Tabelle1").Cells(i, 1).Value
    End With
  • Überlege, ob du zusätzlich CheckBoxen einfügen möchtest, um die Eingaben gezielt auszuwählen und zu verarbeiten.


FAQ: Häufige Fragen

1. Wie kann ich mehrere TextBoxen auf einmal löschen? Um alle TextBoxen zu löschen, kannst du eine Schleife verwenden, die durch alle Steuerelemente der UserForm iteriert und die TextBoxen entfernt.

2. Kann ich die TextBoxen auch formatieren? Ja, du kannst Eigenschaften wie BackColor, Font und TextAlign direkt im VBA-Code anpassen.

3. Wie kann ich die Werte der TextBoxen in ein anderes Arbeitsblatt kopieren? Verwende eine Schleife, um die Werte der TextBoxen zu durchlaufen und in das gewünschte Arbeitsblatt zu kopieren:

Dim ws As Worksheet
Set ws = Worksheets("ZielTabelle")
For i = 1 To colCtl.Count
    ws.Cells(i, 1).Value = colCtl(i).Value
Next i

Mit diesen Informationen bist du bestens gerüstet, um TextBoxen in Excel effizient zu erstellen und zu verwalten!

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige