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

Forumthread: textbox in userform auslesen

textbox in userform auslesen
25.04.2006 17:07:57
christoph
einmal eine frage:
habe sinngemäß folgenden code in vba
for i = 1 to x
cells(i,1).value = userform19!textbox(i).value
next i
soll dazu dienen der reihe nach alle textboxen auszulesen und in die zellen zu schreiben
das "!" hinter der userform ist zwar zunächst ungewohnt aber in meinen speziellen fall der noch etwas komplexer ist notwendig und stellt glaube ich nicht das problem dar
das problem ist dass der textbox(i) nicht erkennt
wäre nett könte mir jemand sagen wie man das alternativ schreiben kann so dass es funktioniert
vielen dank schonmal
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: textbox in userform auslesen
25.04.2006 17:14:30
Gerd
userform19!controls("textbox" & i)
mfg Gerd
AW: textbox in userform auslesen
25.04.2006 17:22:05
christoph
ja an genausoetwas hatte ich gedacht
besten dank
AW: textbox in userform auslesen
25.04.2006 17:15:05
Arthur
Hallo Christoph.
Frage: Wo steht die Textbox? In einer normalen VBA-Userform? Bei mir hat die Textbox dort keine Instanz, sondern jede ihren eigenen Namen. Und dann musst du alle Objekte durchsuchen, ob sie von der Art Textbox sind bzw. evtl den Namensbeginn immer gleich halten und danach entscheiden, welche Werte du nehmen kannst.
Remark: Mit der Idee kann ich auch falsch liegen.
-Arthur
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textbox in Userform Auslesen in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Userform Textbox in Excel VBA auszulesen und deren Werte in Zellen zu schreiben, kannst du folgendes Vorgehen nutzen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel.

  2. Erstelle eine Userform und füge mehrere Textboxen hinzu. Nenne diese Textboxen z.B. TextBox1, TextBox2, ... TextBoxN.

  3. Verwende den folgenden Code, um die Werte der Textboxen auszulesen und in die Zellen zu schreiben:

    Dim i As Integer
    Dim x As Integer
    x = 5 ' Anzahl der Textboxen
    
    For i = 1 To x
       Cells(i, 1).Value = Me.Controls("TextBox" & i).Value
    Next i
  4. Stelle sicher, dass der Code innerhalb der Userform platziert wird (z.B. in einem Button-Klick-Event), um die Ausführung zu starten.


Häufige Fehler und Lösungen

Fehler 1: Textbox(i) wird nicht erkannt.

Lösung: Verwende die Controls-Sammlung, um auf die Textboxen zuzugreifen. Der Code sollte wie folgt aussehen:

Cells(i, 1).Value = Me.Controls("TextBox" & i).Value

Alternative Methoden

Eine alternative Methode zur Verwendung von Controls ist die Verwendung einer Schleife, um alle Steuerlemente innerhalb der Userform zu durchlaufen und nur die Textboxen auszulesen:

Dim ctrl As Control
Dim rowIndex As Integer
rowIndex = 1

For Each ctrl In Me.Controls
    If TypeOf ctrl Is MSForms.TextBox Then
        Cells(rowIndex, 1).Value = ctrl.Value
        rowIndex = rowIndex + 1
    End If
Next ctrl

Praktische Beispiele

Hier ist ein praktisches Beispiel, wie du mehrere VBA Form Textboxen in einer Userform verwenden kannst:

  1. Füge drei Textboxen (TextBox1, TextBox2, TextBox3) und einen Button hinzu.
  2. Verwende den folgenden Code im Button-Klick-Ereignis:

    Private Sub CommandButton1_Click()
       Dim i As Integer
       For i = 1 To 3
           Cells(i, 1).Value = Me.Controls("TextBox" & i).Value
       Next i
    End Sub

Wenn du nun auf den Button klickst, werden die Werte der Textboxen in die erste Spalte des Arbeitsblattes geschrieben.


Tipps für Profis

  • Achte darauf, dass die Namen deiner Textboxen konsistent sind, um die Verwendung von Controls zu erleichtern.
  • Nutze die Möglichkeit, die Textboxen dynamisch zu benennen, um die Wartung deines Codes zu vereinfachen.
  • Verwende die Trim-Funktion, um unerwünschte Leerzeichen vor dem Speichern der Werte zu entfernen:

    Cells(i, 1).Value = Trim(Me.Controls("TextBox" & i).Value)

FAQ: Häufige Fragen

1. Wie kann ich den Wert einer bestimmten Textbox auslesen? Verwende den Namen der Textbox direkt, z.B.:

Dim wert As String
wert = Me.TextBox1.Value

2. Was tun, wenn die Textboxen in einer Schleife nicht gefunden werden? Stelle sicher, dass die Namen der Textboxen korrekt sind und dass du Controls verwendest, um auf sie zuzugreifen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige