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

Userform/ Werte auslesen

Userform/ Werte auslesen
30.10.2013 11:04:14
novo
Hallo wertes Forum,
seit einiger Zeit arbeite ich an folgender dynamischer Userform:
Userbild
Bei betätigen des "x" Buttons wird automatisch eine neue Reihe Steuerelemente erzeugt.
Die Steuerelemente einer Reihen stehen durch ihre Events in einer bestimmten Beziehung zu einander.
Um das Ganze zum Abschluss zu bringen, würde ich gerne den Inhalt jedes Steuerelements mit betätigen des "Fertig" Buttons auslesen und in eine Tabelle schreiben. Die Werte sollen, von oben gesehen, in die erste nicht beschriebene Zeile geschrieben werden. Leider weiß ich nicht, wie ich die dynamisch erstellten Steuerelmente ansprechen soll.
Über die Namen, die beim Erzeugen vergeben werden, lassen diese nicht ansprechen.
Mit Klassenmodulen habe ich allgemein wenig Erfahrung. Vor ca. einer Woche habe ich mal Hilfestellung bei der Erstellung eines Klassenmoduls bekommen. Alles andere konnte ich daraus ableiten, in diesem Fall leider aber nicht mehr.
Hier einmal die Arbeitsmappe: https://www.herber.de/bbs/user/87878.xlsm
Vielen Dank schonmal für jegliche Hilfe.
Mit freundlichem Gruß
novo

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

Betreff
Datum
Anwender
Anzeige
AW: Userform/ Werte auslesen
30.10.2013 12:46:14
Tino
Hallo,
müsste so gehen.
Dim n&, nRow&
With Tabelle1
nRow = .Cells(.Rows.Count, 3).End(xlUp).Row + 1
For n = LBound(aCommands) To UBound(aCommands)
If Not TypeName(aCommands(n).click) = "Nothing" Then
.Cells(nRow, 3) = bCommands(n).change.Value
.Cells(nRow, 4) = cCommands(n).change1.Value
nRow = nRow + 1
End If
Next n
End With

Ich hätte das etwas anders aufgebaut.
zBsp. hätte ich die Arrays für die Controlls Tynamisch erweitert mit Redim Preserve.
Beispiel:
in UserForm_Initialize
ReDim Preserve aCommands(0)
Set aCommands(0).click = cblangserviced
und im cbaddrow_Click
ReDim Preserve aCommands(UBound(aCommands) + 1)
Set aCommands(UBound(aCommands)).click = newcblangserviced
Dann kannst du alles in einer einfachen schleife durchlaufen ohne diese abfrage vom TypeName.

Anzeige
AW: Userform/ Werte auslesen
30.10.2013 13:51:37
novo
Hallo Tino,
danke!!!
habe noch ein bisschen rumprobieren müssen, bis ich es zum laufen bekommen habe.
Jetzt klappt es einwandfrei.
Ich beschäftige mich erst seit ca. einem Monat mit VBA.
Leider habe ich noch nicht die Zeit gefunden mich wirklich intensiv damit zu befassen und demnach
verstehe ich den Programmcode nicht ganz.
Wenn du die Zeit hast, würde ich dich bitten mir diesen kurz zu erklären, damit ich beim nächsten
mal nicht wieder fragen muss :).
Nochmals vielen Dank.
Gruß
novo

AW: Userform/ Werte auslesen
30.10.2013 14:55:47
Tino
Hallo,
aktuell hat dein Array eine feste größe Dim aCommands(50), also Index 0 bis 50,
auch wenn nur eins benötigt wird.
Mit der gezeigten von mir wird dieses Array nur so groß wie es nötig ist.
Im UserForm_Initialize wird der bereits vorhandene aufgenommmen und im Click die die noch dazukommen, damit ist jeder Index im Array auch belegt.
Gruß Tino
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige