ich habe ein Makro, welches mir automatisch eine Schichtfolge erstellt.
Soweit so gut und es funktioniert auch. Nun würde ich gerne noch eine Überprüfung mit einbauen, das mir mit einer MessageBox anzeigt, wenn nicht einer der vier Werte eingegeben wurde (ABA, BCB, CDC, DAD). Also nur diese vier Eingaben sollen zugelassen werden. Alles andere soll in einer MessageBox mit Fehlermeldung resultieren.
Für die korrekte Eingabe des Datums habe ich eine solche Überprüfung hinbekommen, aber eben nicht für die Schichtfolge. Vielleicht könnt ihr mir helfen.
Vielen Dank und Grüße
Hier der relevante Auszug aus dem Makro.
'Eingabemaske für das Datum
Dim sTxt As String
sTxt = InputBox("Bitte Datum eingeben:" & Chr(13) & "Format TT.MM.YYYY")
If sTxt = "" Then Exit Sub
'Eingabe prüfen ob gültiges Datum
ActiveCell.NumberFormat = "0#"".""?"".""""20""?"
If Not IsDate(sTxt) Then
MsgBox ("Sie haben ein falsches Datum eingegeben!")
Exit Sub
End If
Range("B2").Value = CDate(sTxt) 'MsgBox sTxt
Range("B2:D2").Select
Selection.AutoFill Destination:=Range("B2:CP2"), Type:=xlFillDefault
Range("B2:CP2").Select
'Eingabemaske für Schichtfolge
Dim FO As String
FO = "=Index(xxx;REST(SPALTE(A1)+VERGLEICH(""yyy"";xxx;0)-3;12)+1)"
FO = Replace(FO, "xxx", "{""A"";""ABA"";""A"";""B"";""BCB"";""B"";""C"";""CDC"";""C"";""D"";""DAD"";""D""}")
FO = Replace(FO, "yyy", InputBox("Start mit Schicht: ABA, BCB, CDC, DAD"))
With Range(Range("B6"), Cells(6, Cells(1, 1).CurrentRegion.Columns.Count))
.FormulaLocal = FO
.Formula = .Value
End With