ich brauch mal Eure Hilfe, da ich bei meinem Code den Fehler nicht finde.
Aufgabe:
Bei Doppelklick in die Tabelle in den Bereich B7:B406 soll das Userform1 geöffnet werden. Mit meinem Code funktioniert das auch im Bereich B7:B100. Ab B101 erhalte ich den Laufzeitfehler 380 mit Eigenschaft Value konnte nicht gesetzt werden. Ungültiger Eigenschaftswert.
Warum bekomme ich ab B101 diese Fehlermeldung?
Mein Code
Im Tabellenblatt:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Userform1 öffnen bei Doppelklick in Spalte B
Dim Bereich As Range
'Bereich zum Klicken
Set Bereich = Range("b7:b407")
If Intersect(Target, Bereich) Is Nothing Then
Exit Sub
End If
'Ist das Formular schon offen, nicht noch mal öffnen
If UserForm1.Visible Then
Exit Sub
Else
UserForm1.Show
End If
End Sub
Im Formular:
Private Sub CommandButtonAbrechen_Click()
'Commandbutton abrechen
Unload UserForm1
End Sub
Private Sub CommandButtonNeuerDS_Click()
'Commandbutton Neuer Datensatz
'Neuen Datensatz in nächste freie Zeile schreiben
Dim LetzteZelle As Long
If TextBoxName.Value = "" Then
MsgBox "Eingabe Name erforderlich!"
Exit Sub
Else
'Von der letzten Spalte nach oben die erste mit Eintrag finden
LetzteZelle = Cells(407, 2).End(xlUp).Row
Cells(LetzteZelle + 1, 2) = TextBoxName
Cells(LetzteZelle + 1, 3) = TextBoxVorname
Cells(LetzteZelle + 2, 1).Select
SpinButton1 = ActiveCell.Row
End If
End Sub
Private Sub CommandButtonDSändern_Click()
'Commandbutton Änderungen sichern
SpinButton1 = ActiveCell.Row
If TextBoxName = "" Then
MsgBox "Eingabe Name erforderlich!"
Exit Sub
End If
ActiveCell = TextBoxName
ActiveCell.Offset(0, 1) = TextBoxVorname
If ComboBoxKlasse.Value = "" Then
MsgBox "Eingabe KLASSE erforderlich!"
Else
ActiveCell.Offset(0, 2) = ComboBoxKlasse.Value
End If
End Sub
Private Sub SpinButton1_Change()
'Spinbutton1 - Wechseln des Datensatzes mit Drehfeld
'Spinbutton Bereich
SpinButton1.Min = 7
SpinButton1.Max = 406
Cells(SpinButton1, 2).Select
'Werte aus aktiver Zeile übernehmen
TextBoxName = ActiveCell
TextBoxVorname = ActiveCell.Offset(0, 1)
TextBoxID = ActiveCell.Offset(0, -1)
End Sub
Private Sub UserForm_Initialize()
'Erster Datensatz in Zeile 7.
'Drehfeld darf nicht darüber hinaus gehen
If ActiveCell.Row
Danke schon mal und Grüße aus dem Norden,
Felix