UserForm - Code anpassen
06.09.2003 10:46:22
Fritz
da ich mit meinen VBA-Kenntnissen bei der Umsetzung meiner nachfolgend beschriebenen Vorstellungen einfach überfordert bin, bin ich auf die Unterstützung hilfsbereiter VBA-Experten angewiesen:
Über eine UserForm (Code nachstehend aufgeführt) kann über ein Kombinationsfeld zwischen 4 und 6 Teilnehmern ausgewählt werden. Innerhalb eines Rahmen-Steuerelements sind anschließend in den Eingabefeldern 1 bis - je nach Zahl der Teilnehmer - 4,5 oder 6) die Namen der Teilnehmer einzugeben. Diese Namen werden schließlich ebenso wie der über das Eingabefeld 7 (Textbox7) eingegebene Wert in die Tabelle "Daten" in bestimmte Zellen übertragen.
Ich würde nun gerne die Möglichkeiten der UserForm wie folgt erweitern. Die in der Tabelle "Daten" in den jeweiligen Zellen (z.Zeitpunkt des Aufrufs der UserForm) befindlichen Werte (Namen der Teilnehmer in den Zellen B2:B7)sollten in den jeweiligen Eingabefeldern ebenso bereits erscheinen, wie der Wert aus Zelle K1 im Eingabefeld7. Je nach Zahl der Teilnehmer sollte natürlich dann auch im Kombinationsfeld die entsprechende Zahl "voreingestellt" erscheinen. Bei Veränderung der Teilnehmerzahl sollte im Rahmenfeld die Zahl der Textboxen verändert werden, bei Verringerung die Werte in den Zellen der Tabelle "Daten" gelöscht werden. Ansonsten sollten geänderte Eingaben nach Betätigung der Befehlsschaltfläche1 in die jeweiligen Zellen eingetragen werden.
Bereits jetzt besten Dank für jede Form der Hilfe und eure Bemühungen.
Mfg Fritz
(derzeitiger) Code der UserForm:
Option Explicit
Private Sub ComboBox1_Change()
Dim i As Byte
On Error Resume Next
Select Case ComboBox1
Case 3
For i = 4 To 6
Controls("Label" & i).Visible = False
Controls("TextBox" & i).Visible = False
Next i
Case 4
Label4.Visible = True
TextBox4.Visible = True
For i = 5 To 6
Controls("Label" & i).Visible = False
Controls("TextBox" & i).Visible = False
Next i
Case 5
For i = 4 To 5
Controls("Label" & i).Visible = True
Controls("TextBox" & i).Visible = True
Next i
Label6.Visible = False
TextBox6.Visible = False
Case 6
For i = 4 To 6
Controls("Label" & i).Visible = True
Controls("TextBox" & i).Visible = True
Next i
End Select
End Sub
Private Sub CommandButton1_Click()
Dim i As Byte
For i = 1 To 6
If Controls("Label" & i).Visible = True Then
Cells(i + 1, 2) = Controls("TextBox" & i)
Else
Cells(i + 1, 2) = ""
End If
Next i
Unload UserForm1
End Sub
Private Sub CommandButton2_Click()
Unload UserForm1
End Sub
Private Sub UserForm_Initialize()
Dim i As Byte
For i = 3 To 6
ComboBox1.AddItem i
Next i
ComboBox1 = 6
End Sub
Private Sub TextBox7_Change()
Sheets("Daten").Range("K1").Value = TextBox7.Text
End Sub