VBA Array für TextBox

Hallo,

Ich habe in meinem Formular 10 TextBoxen (TextBox1, TextBox2,…,TextBox10)

Ich muss sie alle auslesen und wollte die TextBoxen in ein Array packen, also so ungefähr

Dim Texfelder() AS TexbBox
Textfelder= Array( „TextBox1“, „TextBox2“,…,„TextBox10“)
und dann für
Textfelder(1).value= „Ich bin TextBox1“
usw.

leider klappt das gar nicht, ich bekomme die Fehlermeldung falscher Datentyp.

Weiss da jemand was, bzw. wie ich mein problem lösen kann?

Vielen Dank im Voraus.

Mfg Wischnor

Hallo,

was haste denn damit vor?
Man kann normalerweise über den Control-Befehl draufzugreifen …

LG

Hi Wischnor,

Ich habe in meinem Formular 10 TextBoxen (TextBox1,
TextBox2,…,TextBox10)

Ich muss sie alle auslesen und wollte die TextBoxen in ein
Array packen, also so ungefähr

Dim Texfelder() AS TexbBox
Textfelder= Array( „TextBox1“, „TextBox2“,…,„TextBox10“)
und dann für
Textfelder(1).value= „Ich bin TextBox1“
usw.

das ist aber das Gegenteil von auslesen.

Und, schreib hier bitte keinen Code manuell rein, wimmelt ja von Fehlern in dem Kurzcode, kopiere hier komplette kleine Makros rein, wenn du dann noch korrekterweise in den Optionen des Editors „Variablendaklaration erforderlich“ eingestellt hast, passiert dann schon mal nicht der Fehler mit dem falsch geschriebenen Variablennamen „Textfelder“

Jeder der dir helfen will muß
Textfelder= Array( „TextBox1“, „TextBox2“,…,„TextBox10“)
abändern in
Textfelder= Array( „TextBox1“, „TextBox2“,„TextBox3“)
o.ä., warum sollen das 10 Leute tun, mache es du doch gleich, daß es 10 Boxen sind ist ja bekannt.

Auch TexbBox würde der Debugger bemängeln.

Wenn dann in der kompletten Pprozedur der Fehler "falscher datentyp kommt, so ist das halt so, deshalb fragst du ja nach, aber jeder Helfer muß dann nicht noch bevor er sich um den eigentlichen Fehler kümmern kann, aus deinen Codefragmenten eine bis auf die Fehlermeldung korrekte Prozedur zusammenlöten.
*gg*

Probiers mal so:

Private Sub UserForm_Initialize()
Dim Textfelder
Textfelder = Array(„TextBox1“, „TextBox2“, „TextBox3“)
UserForm1.Controls(Textfelder(1)).Value = „ich bin 1“
End Sub

Gruß
Reinhard

Hallo,

vielen Dank für die Antwort, damit geht das super. und es klappt auch 1a.
Eine frage habe ich aber noch, wenn du den Befehl „Dim Textfelder“ was ist das für ein Type einer Variable?
Ich habe das immer mit String versucht zu lösen, aber das hat nicht geklappt.

Danke Reinhard

Viele Güße
Wischnor

Eine frage habe ich aber noch, wenn du den Befehl „Dim
Textfelder“ was ist das für ein Type einer Variable?
Ich habe das immer mit String versucht zu lösen, aber das hat
nicht geklappt.

Hallo Wischnor,

Nimm Dim Textfelder as Variant, wobei Vba alles wo kein Typ dabeisteht als Variant annimmt, ich schreibe das meist aber trotzdem hin zur Klarstellung.

Wenn du mal dazu übergehen wirst präfixe bei Variablen zu benutzen, wie lngZahl bei Long, intNummer bei Integer usw (siehe ungarische Notation) so spricht m.E. nichts dagegen in dem Fall die Variable nicht als Variant sondern als String im Namen zu kennzeichen.

Also nicht so wie es normal wäre:

Dim var Textfelder as Variant

sondern ruhig

Dim str Textfelder as Variant

und den Typ der Variablen findet man so raus:

MsgBox TypeName(Textfelder)

Gruß
Reinhard

Danke für die Antwort,

Du sagst das ich variant als string ansehen kann. richtig?
Aber warum gibt es dann in VBA String als variable?

Versteh ich nicht so richtig.

Cu