Re: Controls eines Formulars nachträglich indizieren
29.04.2003 13:51:15
fcbok
Hallo,ich versuche noch einmal, mein Problem deutlich zu machen.
Beispiel:
Die Excel-Datei dient zum Vergleich von Kosten für einzelne Artikel bei verschiedenen Anbietern. Dabei können in der UserForm die Mengen vom Nutzer eingegeben werden. Der Einzelpreis und der sich aus Menge * Artikel ergebende Gesamtpreis werden im Formular mit angezeigt. Die daraus resultierende Daten werden in ein Excel-Sheet geschrieben und durch ein Diagramm grafisch dargestellt. Die zuletzt vorgenommenen Eintragungen sollen bei einem weiteren Aufruf des Formulars wieder angezeigt werden, wobei Artikel-Daten in einem separaten Sheet gespeichert werden.
Für jeden Artikel ist in der Userform eine Zeile vorgesehen, in der für jeden Anbieter die Eintragungen vorgenommen werden können. Bei der Initialisierung der UserForm habe ich beispielsweise für den Anbieter x drei Felder zu initialisieren:
Menge --> mit der Menge aus Sheet
EP --> mit Preis aus Sheet
GP --> Summe (Menge * EP)
Der Zugriff über den Namen wäre etwa so.
Userform.Controls("txt_Mengeschnurlos_Siemens").Value = 0
Userform.Controls("lbl_EPschnurlos_Siemens").Caption = 55.13
Userform.Controls("lbl_GPschnurlos_Siemens").Caption = 0
(Eine For-Schleife kann ich hier meines Erachtens nicht einbauen und muss für jedes zu initalisierende Element eine Zeile schreiben)
Der Zugriff über eine For-Schleife wäre etwa so.
For Zaehler = 0 To Controls.Count - 1
Userform.Controls(Zaehler).Value = Mengenermittlung(Zaehler)
Userform.Controls(Zaehler + 1).Caption = Einzelpreis(Zaehler)
Userform.Controls(Zaehler + 2).Caption = Gesamtpreis(Zaehler)
Next Zaehler
(Hier habe ich für alle Steuerelemente insgesamt nur drei Zeilen. Zur Abfrage der Mengen- und Preisinformationen könnte ich mit Hilfe des Zaehlers auf ein Daten-Sheet zurückgreifen.)
Mein Problem war, dass z. B. das Mengenfeld als controls(22) hinter dem Einzelpreisfeld als controls(21) kam. Somit wäre die obige For-Schleife nicht mehr in Ordnung, weil nach der Initialisierung des Mengenfelds der Index für den Einzelpreis auf 23 stehen würde, obwohl der Index der Einzelpreis-Control eigentlich 21 ist.
Ich hoffe, mein Problem wurde damit klar. Wie schon gesagt, habe ich das Problem dann mit Ausschneiden und Einfügen gelöst.
Gruß Jens