Herbers Excel-Forum - das Archiv

Auslesen von Textbox-Inhalten einer Userform

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Auslesen von Textbox-Inhalten einer Userform
von: Stephan Mett

Geschrieben am: 29.12.2006 07:53:11
Hallo zusammen,
ich lasse mir aus einer Kontenliste (Anzahl der Konten ist variabel) eine Userform erstellen, in die automatisch Textboxen generiert werden, in die der Anwender Salden schreibt. Diese Textboxen werden in verschiedene ebenfalls automatisch erstellte Frames (pro Bank ein Frame, pro Konto eine Textbox) gesetzt.
Da sowohl Frames als auch Textboxen automatisch nummeriert werden, weiß ich nicht, wie ich die Inhalte (Salden) auslesen bzw. in eine Zelle zurückschreiben kann.
Schön wäre eine solche Lösung
For X = 1 to 10 'Anzahl der Frames = Anzahl der Banken
For Y = 1 to 10 'Anzahl der Textboxen = Anzal der Konten der jeweiligen Bank
Cells(X, Y) = Userform1.frameX.TextboxY
Next Y
Next X
Das funktioniert aber nicht, weil ich nicht weiß, wie die Syntax für eine variablen FrameX bzw. eine variable TextboxY ist.
Außerdem ist die Anzahl der Frames bzw. Textboxen (im oberen Beispiel = 10) variabel. Ich weiß also nicht, wie oft die einzelnen For-Next-Schleifen zu durchlaufen sind.
Danke vorab.
Stephan
Bild

Betrifft: AW: Auslesen von Textbox-Inhalten einer Userform
von: Heiko S.

Geschrieben am: 29.12.2006 08:02:16
Hallo Stephan,
als ob ich es geaht hätte das diese Frage kommt, nachdem du ja nun Franes und Textboxen dynamisch erstellen kannst :-)
Kannst du mal ne Beispieldatei machen wo ein paar Daten und die Userform schon drin in der du die Frames und Textboxen dynamisch erstellst.
Gruß Heiko
PS: Rückmeldung wäre nett !
Bild

Betrifft: AW: Auslesen von Textbox-Inhalten einer Userform
von: Heiko S.

Geschrieben am: 29.12.2006 12:22:35
Hallo Stephan,
damit 2006 nicht ohne Info endet.
Eine Möglichkeit einfach alle Controls der UserForm durchgehen und wenn eine Textbox dabei ist den Wert in die Tabelle schreiben.
Private Sub CommandButton2_Click()
Dim ctlinfo As Control
Dim lngI As Long
lngI = 1
For Each ctlinfo In Me.Controls
If TypeName(ctlinfo) = "TextBox" Then
ActiveSheet.Cells(lngI, 1) = ctlinfo.Value
lngI = lngI + 1
End If
Next ctlinfo
End Sub

Oder du legst dir eine eigene Klasse an in der du die dynamisch erstellten Textboxen verwaltest und dann darauf zugreifen kannst. Alles dazu siehe hier http://www.online-excel.de/excel/grusel_vba.php?f=7
Oder du vergibst ber der Erstellung schon eindeutige Namen z.B. A12, A13, B27 usw also wo kommen die daten her wo sollen sie hin, damit du dann über den Namen beim zurückschreiben direkt auf die Zellen referenzieren kannst.
Oder, oder oder ...
Guten Rutsch und Gruß Heiko
PS: Rückmeldung wäre nett !
Bild

Betrifft: AW: Auslesen von Textbox-Inhalten einer Userform
von: Stephan Mett
Geschrieben am: 02.01.2007 08:21:40
Prima, vielen Dank. Damit bin ich wieder einen Schritt weiter. Danke für den Link, den muss ich allerdings erstmal in Ruhe "durchbrüten".
S.
 Bild
Excel-Beispiele zum Thema "Auslesen von Textbox-Inhalten einer Userform"
Mehrfachauswahl aus ListBox auslesen Dateien aus Listbox auslesen und öffnen
Bereich in RefEdit-Element eingeben und auslesen Auslesen der Arbeitsmappeneigenschaften
UserName aus der Windows-Registry auslesen Eintrag aus der Win.ini auslesen
Einzelnes Zeichen aus einer InputBox-Eingabe auslesen Ausgewählte Arbeitsblätter auslesen
Mehrfachauswahl in ListBox auslesen Diagramm in Userform