Hallo,
in einem UserForm möchte ich u.a. folgenden Ablauf programmieren:
1. fünf TextBoxen werden jeweils unterschiedliche Texte
zugewiesen,
2. optional können diese Texte in der TextBox vom User
verändert werden,
3. neben jeder TextBox befindet sich ein OptionButton; durch
Klicken auf den OptionButton wird der Text in der
zugehörigen TextBox ausgewählt,
4. der Ausgewählte Text wird einer Variablen zur weiteren
Bearbeitung übergeben.
Eigentlich kein Problem, aber ...
Ich würde das gern wie im Folgenden lösen:
(Beispiel wie oben ab Pkt. 3)
Dim bytAuswahl As Byte 'Nr. des angeklickten OptionButtons
Dim objObjName As Object 'für den Namen der jeweiligen
OptionButton, TextBox o.ä.
Dim strNameStamm As String 'für den Namens- Stamm der
zusammengehörigen Elemente
Dim bytZähler As Byte 'für den zählenden Zusatz zum Namens- Stamm
Dim strAusgewählterText As String 'Übernimmt den Text aus der
ausgewählten TextBox
strNameStamm = "obutZeile" 'der OptionButton
bytZähler = 1
bytAuswahl = 0
Do While bytZähler = 6 Or bytAuswahl > 0
objObjName = strNameStamm & bytZähler
If objObjName = True Then
bytAuswahl = bytZähler
End If
bytZähler = bytZähler + 1
Loop
If bytAuswahl = 0 Then
MsgBox ("[Fehlermeldung]"), vbCritical, Title:="Fehler"
Exit Sub
End If
strNameStamm = "tboxZeile" 'die TextBox
objObjName = strNameStamm & bytAuswahl
strAusgewählterText = objObjName.Value
Leider funktioniert das so (mit objObjName As Object) nicht.
Also bin ich gezwungen z.B. folgendes zu schreiben:
Dim bytAuswahl As Byte
Private Sub obutZeile1_Click()
bytAuswahl = 1
End Sub
Private Sub obutZeile2_Click()
bytAuswahl = 2
End Sub
............. u.s.w .... u.s.w ... u.s.w ... .
(Dann über Select Case den Text aus der Textbox der Variablen zuweisen)
Und das nervt!!!
Wie muss ich richtig deklarieren und die Deklaration anwenden, um aus mehreren Variablen den Namen eines Elements (auch z.B. Labels oder CommandButtons) zu bilden und diesen im Code zu verwenden, damit ich zu einer ähnlichen Lösung, wie im oberen Beispiel dargestellt, komme?
Grüße von Harry |