Folgende Problemstellung:
Ich habe eine Userform erstellt, welche Daten einer Eingabe in einem String wie folgt in eine Listbox einträgt:
Datum; Name; Personenanzahl; Zimmernummer; reservierte Zeit
das Datum ist immer im Format TT.MM.JJJJ
und die reservierte Zeit kann folgende 4 Zeiten annehmen: "07:00-09:00" "09:15-11:00" "17:30-19:00" 19:30-21:00".
Nun zu meinem Problem:
Über einen Button in der Userform sollen nun die Daten in die jeweils dazugehörigen Exceltabellen welche pro Monat in einem Worksheet, welches je mit Monat + Jahr benannt ist eingetragen werden.
Folgenden Code habe ich dazu geschrieben, es erscheint auch keine Fehlermeldung, aber irgendwo muss ich einen Fehler gemacht haben, denn die Daten werden nicht eingetragen, die Userform aber wie am Ende des Codes steht ausgeblendet.
Vielleicht kann mir da ja jemand helfen.
Ich danke euch schonmal im Vorraus!
Nun der Code dazu:
Sub speichern_Click()
Dim i As Integer
Dim n As Integer
Dim k As Integer
Dim gesamt As String
Dim datum As String
Dim tag As String
Dim tagvs As Integer
Dim monat As String
Dim jahr As String
Dim name As String
Dim pax As String
Dim nummer As String
Dim zeit As String
With UserForm1.zusammenfassung
For i = 0 To .ListCount - 1
gesamt = .List(i)
datum = Left$(gesamt, InStr(1, gesamt, ";") - 1)
gesamt = Right$(gesamt, Len(gesamt) - InStr(1, gesamt, ";"))
name = Left$(gesamt, InStr(1, gesamt, ";") - 1)
gesamt = Right$(gesamt, Len(gesamt) - InStr(1, gesamt, ";"))
pax = Left$(gesamt, InStr(1, gesamt, ";") - 1)
gesamt = Right$(gesamt, Len(gesamt) - InStr(1, gesamt, ";"))
nummer = Left$(gesamt, InStr(1, gesamt, ";") - 1)
gesamt = Right$(gesamt, Len(gesamt) - InStr(1, gesamt, ";"))
zeit = gesamt
tag = Left$(datum, 2)
tagvs = CInt(tag)
jahr = Right$(datum, 4)
monat = Right$(Left$(datum, 5), 2)
If InStr(1, datum, ".01.") 0 Then
datum = Replace(datum, ".01.", ". Januar ")
ElseIf InStr(1, datum, ".02.") 0 Then
datum = Replace(datum, ".02.", ". Februar ")
ElseIf InStr(1, datum, ".03.") 0 Then
datum = Replace(datum, ".03.", ". März ")
ElseIf InStr(1, datum, ".04.") 0 Then
datum = Replace(datum, ".04.", ". April ")
ElseIf InStr(1, datum, ".05.") 0 Then
datum = Replace(datum, ".05.", ". Mai ")
ElseIf InStr(1, datum, ".06.") 0 Then
datum = Replace(datum, ".06.", ". Juni ")
ElseIf InStr(1, datum, ".07.") 0 Then
datum = Replace(datum, ".07.", ". Juli ")
ElseIf InStr(1, datum, ".08.") 0 Then
datum = Replace(datum, ".08.", ". August ")
ElseIf InStr(1, datum, ".09.") 0 Then
datum = Replace(datum, ".09.", ". September ")
ElseIf InStr(1, datum, ".10.") 0 Then
datum = Replace(datum, ".10.", ". Oktober ")
ElseIf InStr(1, datum, ".11.") 0 Then
datum = Replace(datum, ".11.", ". November ")
ElseIf InStr(1, datum, ".12.") 0 Then
datum = Replace(datum, ".12.", ". Dezember ")
Else
MsgBox "Auf den Boden werfen und nach Hauke schreien!", vbOKOnly, "Hilfe?"
End If
If InStr(1, datum, Left$(ThisWorkbook.Worksheets(2).name, Len(ThisWorkbook.Sheets(2).name) - 5)) 0 Then
If InStr(1, zeit, "07:00-09:00") 0 Then
k = 2
ElseIf InStr(1, zeit, "09:15-11:00") 0 Then
k = 9
ElseIf InStr(1, zeit, "17:30-19:00") 0 Then
k = 16
ElseIf InStr(1, zeit, "19:30-21:00") 0 Then
k = 23
Else
MsgBox "Bitte nach Hauke schreien!", vbOKOnly, "Hilfe?"
End If
ThisWorkbook.Worksheets(2).Activate
For n = tagvs * 55 - 52 To n = tagvs * 55 - 2
If ThisWorkbook.Worksheets(2).Cells(n, k) = "" Then
ThisWorkbook.ActiveSheet.Cells(n, k) = nummer
ThisWorkbook.ActiveSheet.Cells(n, k + 1) = name
ThisWorkbook.ActiveSheet.Cells(n, k + 5) = pax
ElseIf n = tagvs * 55 - 1 Then
MsgBox "Dieser Termin ist bereits voll, bitte manuell oder handschriftlich eintragen", vbOKOnly, "Der Termin" & " " & zeit & " am " & datum & " ist voll!"
Else: GoTo weiter
End If
weiter:
Next n
End If
Next i
End With
UserForm1.Hide
End Sub