Kann mir da jemand weiterhelfen?
Die Checkbox ins Formular einfügen kann ich aber das Programmieren ist für mich das Problem.
Option Explicit
Private ZeileDaten As Long 'Zeile mit dem zu ändernden Datensatz
Private wksData As Worksheet 'Tabellenblatt mit den Daten
Private Sub DatenEinlesen(Zeile As Long)
With wksData
Me.TextBox1 = .Cells(Zeile, 1).Text
Me.TextBox2 = .Cells(Zeile, 2).Text
Me.TextBox3 = .Cells(Zeile, 3).Text
Me.CheckBox1 = LCase(.Cells(Zeile, 4).Text) = "x"
End With
End Sub
Private Sub Daten_in_Tabelle_schreiben(Zeile As Long)
With wksData
.Cells(Zeile, 1).Value = Me.TextBox1 'bei Text
With Me.TextBox2 'bei Zahlenwerten
If .Value = "" Then
wksData.Cells(Zeile, 2).ClearContents
ElseIf IsNumeric(.Value) Then
wksData.Cells(Zeile, 2).Value = CDbl(.Value)
Else
wksData.Cells(Zeile, 2).Value = .Value
End If
End With
With Me.TextBox3 'bei Datumswerten
If .Value = "" Then
wksData.Cells(Zeile, 3).ClearContents
ElseIf IsDate(.Value) Then
wksData.Cells(Zeile, 3).Value = CDate(.Value)
Else
wksData.Cells(Zeile, 3).Value = .Value
End If
End With
If Me.CheckBox1 = True Then
.Cells(Zeile, 4).Value = "X"
Else
.Cells(Zeile, 4).ClearContents
End If
End With
End Sub
Private Sub CommandButton_Abbrechen_Click()
Unload Me
End Sub
Private Sub CommandButton_Eintragen_Click()
Call Daten_in_Tabelle_schreiben(Zeile:=ZeileDaten)
Unload Me
End Sub
Private Sub UserForm_Activate()
Set wksData = ActiveSheet
ZeileDaten = ActiveCell.Row
Call DatenEinlesen(Zeile:=ZeileDaten)
End Sub
Me.CheckBox1 = LCase(.Cells(Zeile, 4).Text) = "x"
If Me.CheckBox1 = True Then
.Cells(Zeile, 4).Value = "X"
Else
.Cells(Zeile, 4).ClearContents
End If
Me.CheckBox1 = LCase(WorkSheets("MeineTabelle").Cells(MeineZeile,_
MeineSpalte).Text) = "x"
If Me.CheckBox1 = True Then
WorkSheets("MeineTabelle").Cells(MeineZeile, MeineSpalte).Value = "X"
Else
WorkSheets("MeineTabelle").Cells(MeineZeile, MeineSpalte).ClearContents
End If