Hallo Leute
Ich habe eine alte VBA Dienstplan umgebaut und es fehlt mir ein paar befehle noch.
Ich möchte ein Warnfenster erstellen, die geht auf wenn man trägt ein Mitarbeiter von Spätdienst auf Frühdienst.
Ich habe schon Warnfenster in den dienstplan aber nur wenn man trägt jemand doppelt.
Vielleicht kann man die umbauen?
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveSheet.Index 17 Then Exit Sub
Spalte = Target.Column
Zeile = Target.Row
If Spalte 32 Then Exit Sub
If Not Intersect(Target, ActiveSheet.Range(Cells(5, Spalte), Cells(27, Spalte))) Is Nothing Then
Call Zeit_Eintragen
End If
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Spalte = ActiveWindow.ActiveCell.Column
If ActiveSheet.Index 15 Then Exit Sub
If Spalte 32 Then Exit Sub
If Target.Count > 1 Then Exit Sub
temp = „“
Set BereichB = ActiveSheet.Range(Cells(5, Spalte), Cells(21, Spalte))
If Target.Value = „“ Then Exit Sub
z = 0
Set rngSuchBereich = BereichB.Find(Target.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not rngSuchBereich Is Nothing Then
FirstAddress = rngSuchBereich.Address
Do
z = z + 1
Set rngSuchBereich = BereichB.FindNext(After:=rngSuchBereich)
temp = temp & rngSuchBereich.Row & „#“
If rngSuchBereich.Address = FirstAddress Then Exit Do
Loop
End If
temp = Split(temp, „#“)
If UBound(temp) > 1 Then
If ActiveCell.Row > 17 Then u = temp(1)
If ActiveCell.Row Spalte Then
Cells(ActiveCell.Row, Spalte).Value = „“
Else
Cells(Zeile, Spalte).Value = „“
End If
Exit Sub
End Select
Exit Sub
End If
If z = 3 And u Spalte Then
Cells(ActiveCell.Row, Spalte).Value = „“
Else
Cells(Zeile, Spalte).Value = „“
End If
Exit Sub
End Select
Exit Sub
End If
If z > 3 And u Spalte Then
Cells(ActiveCell.Row, Spalte).Value = „“
Else
Cells(Zeile, Spalte).Value = „“
End If
Exit Sub
End If
If z = 2 And u > 17 Then
Select Case MsgBox(„Dieser Mitarbeiter hat Urlaub!“ _
& vbCrLf & _
vbCrLf & _
„Trotzdem eintragen ?“ _
, vbYesNo Or vbExclamation Or vbDefaultButton1, „Sorry“)
Case vbYes
Call Zeit_Eintragen
Case vbNo
If ActiveCell.Column Spalte Then
Cells(ActiveCell.Row, Spalte).Value = „“
Else
Cells(Zeile, Spalte).Value = „“
End If
Exit Sub
End Select
Exit Sub
End If
If z > 2 And u > 17 Then
Select Case MsgBox(„vvvDieser Mitarbeiter hat Urlaub!!!“ _
& vbCrLf & _
„Trotzdem eintragen ?“ _
, vbYesNo Or vbExclamation Or vbDefaultButton1, „Sorry“)
Case vbYes
Call Zeit_Eintragen
Case vbNo
If ActiveCell.Column Spalte Then
Cells(ActiveCell.Row, Spalte).Value = „“
Else
Cells(Zeile, Spalte).Value = „“
End If
Exit Sub
End Select
Exit Sub
End If
End Sub