Ich komme nicht mehr weiter und brauche Hilfe.
In einem UserForm möchte ich Daten aus der Tabelle "Zeiterfassung" in eine ListBox ziehen. Dort dann die gewünschte Zeile mit den gewünschten Daten selektieren und in TextBoxen darunter den Inhalt ergänzen. Dann per Klick auf "Erfassen" die Daten "Arbeitszeit Totel" wieder zurück in die Tabelle schreiben, natürlich zum richtigen Datensatz. Wenn die Checkbox "Tätigkeit abgeschlossen" markiert wird, soll Zusätzlich das Datum in der Spalte "Effektives Ende" eingetragen werden. Wenn auch noch die Checkbox "Auftrag abgeschlossen" angewählt wird, soll das Datum in der Tabelle "Projektüberwachung" beim entsprechenden Auftrag bei "Effektives Ende" eingefügt werden.
Solange ich keine Checkbox anwähle, klappt alles, doch sobald ich 2 Werte (Zeit & Datum) zurückschreiben will, schreibt der Code den ersten Wert an die richtige Stelle, den 2. aber in die Überschriftenzeile. Der Teil mit dem Datum in die Tabelle "Projektüberwachung" zu schreiben, scheint gar nicht zu funktionieren.
Zur Vereinfachung habe ich hier meine Datei: https://www.herber.de/bbs/user/118443.xlsm
Irgendwo hier muss ich einen Fehler drin haben:
Private Sub Erfassen_Click()
If Ende_Tätigkeit.Text = "" Or Arbeitszeit.Text = "" Then
MsgBox "Alle Pflichtfelder ausfüllen!" 'wenn eines der Felder leer ist dann Meldung
Else
Erfassen.Visible = False
End If
If Tätigkeit_Abgeschlossen Then
LetzteZeile = Sheets("Zeiterfassung").Cells(Rows.Count, 1).End(xlUp).Row
With Range("Zeiterfassung!A4:H" & LetzteZeile)
Me.Tag = "1"
.Cells(ListBox1.ListIndex + 1, 6).Value = (Ende_Tätigkeit.Text)
.Cells(ListBox1.ListIndex + 1, 8).Value = (Arbeitszeit_Total.Text)
Me.Tag = ""
End With
Else
LetzteZeile = Sheets("Zeiterfassung").Cells(Rows.Count, 1).End(xlUp).Row
With Range("Zeiterfassung!A4:H" & LetzteZeile)
Me.Tag = "1"
.Cells(ListBox1.ListIndex + 1, 8).Value = CDbl(Arbeitszeit_Total.Value)
Me.Tag = ""
End With
End If
If Auftrag_Abgeschlossen Then
Dim Zelle As Range
Dim Name As String
Name = ".List(.ListIndex, 0)"
iRow = Sheets("Projektüberwachung").Cells(Rows.Count, 1).End(xlUp).Row
If Name = "" Then Exit Sub
For Each Zelle In Worksheets("Projektüberwachung").Range("A5:A" & iRow)
If Zelle = Name Then
Zelle.Offset(0, 6).Value = Ende_Tätigkeit.Text
Exit Sub
End If
Next Zelle
Exit Sub
End If
End Sub
Kann mir jemand auf die Sprünge helfen?
Gruss
Sandro