Code kürzen
15.07.2014 12:08:05
Andreas
Hallo Excelprofis,
Ich habe ein UserForm mit ca. 350 Textboxen. Dank dieses super Forums und Internetrecherche kann ich jede Textbox durch Doppelklick "markieren" (färbt sich grün). Per Commandbuttons werden nur die Werte der "markierten" Textboxen in bestimmte Zellen eingetragen. Der Code sieht folgendermaßen aus:
Private Sub CommandButton5_Click()
Dim tbxCtrl As Object
Dim iX As Integer
Dim lRow As Long
Sheets("Benutzer").Visible = True
Sheets("Benutzer").Select
Sheets("Benutzer").Range("A1").Value = Me.TextBox400.Text
Sheets("Benutzer").Range("a2:a17").ClearContents
lRow = 2
For iX = 1 To 16
Set tbxCtrl = Me.Controls("TextBox" & iX)
If tbxCtrl.BackColor = &HC0FFC0 Then
Cells(lRow, 1) = Replace(tbxCtrl.Text, vbCrLf, vbLf)
lRow = lRow + 1
End If
Next iX
End Sub
Private Sub CommandButton6_Click()
Dim tbxCtrl As Object
Dim iX As Integer
Dim lRow As Long
Sheets("Benutzer").Visible = True
Sheets("Benutzer").Select
Sheets("Benutzer").Range("B1").Value = Me.TextBox401.Text
Sheets("Benutzer").Range("b2:b17").ClearContents
lRow = 2
For iX = 17 To 32
Set tbxCtrl = Me.Controls("TextBox" & iX)
If tbxCtrl.BackColor = &HC0FFC0 Then
Cells(lRow, 2) = Replace(tbxCtrl.Text, vbCrLf, vbLf)
lRow = lRow + 1
End If
Next iX
End Sub
usw. bis Commandbutton 25
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
switchcolor TextBox1
End Sub
Private Sub TextBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
switchcolor TextBox2
End Sub
Private Sub TextBox3_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
switchcolor TextBox3
End Sub
Private Sub TextBox4_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
switchcolor TextBox4
End Sub
usw. soll bis Textbox 336 gehen
Sub switchcolor(ByRef tbxCtrl As MSForms.TextBox)
If tbxCtrl.BackColor = &H80000005 Then
tbxCtrl.BackColor = &HC0FFC0
Else
tbxCtrl.BackColor = &H80000005
End If
End Sub
Meine Frage: Kann man den Code für die Textboxen 1 bis 336 irgendwie zusammenfassen?
Danke fürs Lesen und die Hilfe!
mfg, Andreas