AW: Bedingte Formatierung
Wolfgang
Hallo Dieter,
versuchs mal hiermit. konnte es leider gerade nicht testen, also wenns nicht klappt einfach nochmal melden...
Private Sub CommandButton1_Click()
' Urlaubsplaner
' geschrieben am 26.07.2001
' postmaster@klaus-dieter-2000.de
Dim dat As Date, dat2 As Date, dat3 As Date ' Variablen deklarieren
dat = Me.TextBox1 ' Wert aus UserForm zuweisen
dat2 = Me.TextBox2 ' Wert aus UserForm zuweisen
Worksheets("1. Halbjahr").Activate ' Tabellenblatt 1 aktivieren
If dat2 > Cells(3, 182) And dat < Cells(3, 182) Then ' Urlaubszeitraum über Jahresmitte?
dat3 = dat2 ' Dann neue Werte zuweisen
dat2 = Cells(3, 182) ' "
End If ' Ende If
If dat > Cells(3, 182) Then Worksheets("2. Halbjahr").Activate ' wenn Urlaubsbeginn im 2. Haljahr Tabellenblatt aktivieren
sp = 1 ' Startwert für Do-While-Schleife
Do While Cells(3, sp) <> dat ' Start Schleife (Urlausbeginn suchen)
sp = sp + 1 ' Zähler um Wert 1 erhöhen
Loop ' Wendepunkt für Schleife
sp2 = 1 ' Startwert für Do-While-Loop-Schleife
Do While Cells(3, sp2) <> dat2 ' Start Schleife (Urlausende suchen)
sp2 = sp2 + 1 ' Zähler um Wert 1 erhöhen
Loop ' Wendepunkt für Schleife
z = 4 ' Startwert für Do-While-Schleife
Do While Cells(z, 1) <> Me.ComboBox1 ' Start Schleife (Mitarbeiter suchen)
z = z + 1 ' Zähler um Wert 1 erhöhen
Loop ' Wendepunkt für Schleife
If dat3 > 0 Then GoTo Seitenwechsel ' wenn Urlaubsende im 2. Halbjahr gehe zur Unterroutine
For r = sp To sp2 ' sonst Schleifenstart für Tabelleneintrag
Cells(3, r).Select ' Zellen selektieren
If Cells(3, r).Interior.ColorIndex = 40 Then
Cells(7, r).Value = "V"
Else: End If
If Format(Cells(5, r), "ddd") = "O" _
Or Cells(2000, r) = 2 _
Or Format(Cells(5, r), "ddd") = "O" Then GoTo sprung ' wenn Sonnabend oder Sonntag kein Eintrag
Cells(z, r) = "Tu" ' Eintrag für Urlaub
ut = ut + 1
TextBox3 = "Es werden " & ut & " Urlaubstage" & Chr(13) & "benötigt"
sprung: ' Sprungziel (wenn kein Eintrag)
Next r ' Schleifenzähler
Exit Sub ' Programmende, wenn Urlaub nur im 1. Halbjahr
Seitenwechsel: ' Sprungziel wenn Urlaubsanteile im 2. Halbjahr
For r = sp To sp2 ' Schleifenstart für Tabelleneintrag
Cells(3, r).Select
' Zellen selektieren
If Format(Cells(5, r), "ddd") = "O" _
Or Format(Cells(5, r), "ddd") = "O" Then GoTo sprung1 ' wenn Sonnabend oder Sonntag kein Eintrag
Cells(z, r) = "Tu" ' Eintrag für Urlaub
ut2 = ut2 + 1
sprung1: ' Sprungziel (wenn kein Eintrag)
Next r ' Schleifenzähler
Worksheets("2. Halbjahr").Activate ' Tabellenblatt 2 aktivieren
sp3 = 2 ' Startwert für Do-While-Loop-Schleife
Do While Cells(3, sp3) <> dat3 ' Start Schleife (Urlausende suchen)
sp3 = sp3 + 1 ' Schleifenzähler
Loop ' Wendepunkt für Schleife
For s = 2 To sp3 ' Schleifenstart für Tabelleneintrag
Cells(3, s).Select ' Zellen selektieren
If Cells(3, r).Interior.ColorIndex = 40 Then
Cells(7, r).Value = "V"
Else: End If
If Format(Cells(5, s), "ddd") = "O" _
Or Format(Cells(5, s), "ddd") = "O" Then GoTo sprung2 ' wenn Sonnabend oder Sonntag kein Eintrag
Cells(z, s) = "Tu" ' Eintrag für Urlaub
ut2 = ut2 + 1
TextBox3 = "Es werden " & ut2 & " Urlaubstage" & Chr(13) & "benötigt"
sprung2: ' Sprungziel wenn kein Eintrag
Next s ' Schleifenzähler
End Sub
' Programmende
Private Sub CommandButton2_Click()
UserForm1.Hide ' UserForm schließen
End Sub
Gruß
Wolfgang