Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Urlaubskalender Bedingte Formatierung

Urlaubskalender Bedingte Formatierung
10.01.2021 12:12:20
Herbi
Hallo in´s Forum,
ich habe eine Bitte. In der anhängenden Excel-Datei, habe ich einen Urlaubskalender. Dieser wird befüllt, für die Urlaubszeit, mit den Daten aus dem Sheet "Urlaubsantrag". In das Datenblatt "Januar", vorerst das Erste das mit diesen Datengefüllt wird, die Urlaubszeit eingetragen und die entsprechenden Tage im Kalenderblatt mit "bedingter Formatierung" "grün" eingefärbt. Für Januar bedeutet dies die Zeile "G7:AK7".
Nun mein Problem:
Damit ich die Tage zählen kann, wäre der Buchstabe "G" einzutragen. Erst dann werden die Urlaubstage berechnet:
Dies hängt auch mit dem Resturlaub, dem Sonderurlaub und Kranktagen zusammen.
Siehe Formeln.
Welche Möglichkeiten habe ich, damit mir dies automatisch geschieht?
Mit dieser Formel werden die "G" in den Bereich G7:AK7 eingetragen, aber halt auch an den Feiertagen!
=WENN(
UND(ODER(
UND(G$5>=Urlaubsantrag!$C$2;G$5=Urlaubsantrag!$C$3;G$5=Urlaubsantrag!$C$4;G$5=Urlaubsantrag!$C$5;G$5=Urlaubsantrag!$C$6;G$5

Das ist das Problem.
Danke für die Lösungsansätze.
https://www.herber.de/bbs/user/142894.xlsx
Anzeige

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Urlaubskalender Bedingte Formatierung
10.01.2021 12:29:44
onur
"Mit dieser Formel werden die "G" in den Bereich G7:AK7 eingetragen" ?
Da sind keine Formeln in G7:AK7.
AW: Urlaubskalender Bedingte Formatierung
10.01.2021 12:35:09
Herbi
Hallo Onur.
die habe ich wieder rausgenommen.
Dazu muss nur die Formel in die Zelle G7 kopiert werden und dann bis AK7 kopieren.
Sorry, hatte dies nach dem "Nichtklappen" wieder rausgenommen.
Danke
Anzeige
AW: Urlaubskalender Bedingte Formatierung
10.01.2021 12:49:25
onur
Und das soll ICH machen, damit ich dir helefen darf?
AW: Urlaubskalender Bedingte Formatierung
10.01.2021 13:05:43
Herbi
Hallo Onur,
natürlich nicht.
Vielleicht habe ich mich auch nicht verständlich genug ausgedrückt.
Also, wenn du in die Zelle G7:AK31, ein "G" eingibst, wird der Urlaubstag gezählt und die Zelle "grün" eingefärbt. Die Tage werden korrekt gezählt.
Was ich erreichen will, mit dieser Formel, ist, dass nach mir nach Eingabe des Datum-Bereichs aus dem Sheet "Urlaubsantrag" das "G" automatisch eingetragen wird. Und nicht, dass nur die Zellen grün eingefärbt werden.
Anzeige
AW: Urlaubskalender Bedingte Formatierung
10.01.2021 14:24:43
JoWE
Hallo Herbi,
versuch mal in Januar G7:
=WENN(UND(WOCHENTAG(G$5;2)<6;G$5>=Urlaubsantrag!$C2;G$5<=Urlaubsantrag!$D2);"G";"")
Gruß
Jochen
AW: Urlaubskalender Bedingte Formatierung
10.01.2021 15:18:33
Herbi
Hallo Jochen,
leider nicht.
Wenn ich die Formel einsetze, kommt eine Fehlermeldung wo beim Wochentag (Zahl und Typ) bemängelt wird.
Danke für die Hilfe.
Lösung, siehe Antwort von Onur.
Herbi
Anzeige
AW: Urlaubskalender Bedingte Formatierung
10.01.2021 14:35:23
onur
Besser ohne Formeln - nur VBA.
Das Makro wird aktiviert, sobald "Urlaub bis" eingetragen/verändert wird.
https://www.herber.de/bbs/user/142896.xlsm
AW: Urlaubskalender Bedingte Formatierung
10.01.2021 15:11:19
Herbi
Hallo Onur,
Danke.
Perfekte Lösung.
Herbi
AW: Urlaubskalender Bedingte Formatierung
10.01.2021 15:24:40
onur
Wenn du statt 12 Blätter nur EIN Blatt hättest, wäre alles vieeeel einfacher.
Hier eine Version, wo du auch den Urlaub stornieren kannst, indem du das "U" in Spalte A wegmachst.
Der Code reagiert jetzt auch auf Änderung von "Urlaub von".
https://www.herber.de/bbs/user/142899.xlsm
Anzeige
AW: Urlaubskalender Bedingte Formatierung
10.01.2021 17:09:23
Herbi
Hallo Onur,
ich kann mich nur bei dir bedanken.
Auch werde ich versuchen, dass Ganze zu erweitern.
Servus.
Gerne !
10.01.2021 17:35:31
onur
AW: Gerne !
10.01.2021 18:49:32
Herbi
Hallo Onur,
Sorry, muss leider etwas Wasser in den Wein gießen.
Und ich tue mir schwer den Code richtig zu lesen.
Folgendes Problem.
Gebe ich bei mehreren Mitarbeitern die "Datum´s" ein, werden mir in der Zeile G7:AK7 die Zellen grün eingefärbt. In beiden Dateien!
Wo kann ich diese ändern, dass dies nicht geschieht?
Und noch ne Frage zu den Variablen im Code: ze = Zeile und sp = Spalte?
Also hier: nam = Cells(ze, 2)
Meine Deutung: nam=Mitarbeiter in der Zeile und in der 2.Spalte?
Wäre super, du könntest nochmals eingreifen.
Danke.
Anzeige
AW: Gerne !
10.01.2021 19:02:10
onur
"Wo kann ich diese ändern, dass dies nicht geschieht?"
Das liegt an deinen bedingten Formatierungen.
Wieso hast du je ZWEI? Eines für Zellwert und eines nach Urlaubsantrag.
Lösche die zweiten.
Deine Deutungen sind korrekt.
AW: Gerne !
10.01.2021 19:05:47
Herbi
Oh, Danke.
AW: Gerne !
11.01.2021 09:11:47
Herbi
Guten Morgen Onur,
Da ich mit meinen bescheidenen VBA-kenntnissen nicht weiterkomme, benötige ich nochmals Hilfe.
Die Variable EINTRAG möchte ich erweitern um drei Kennzeichen, S für Sonderurlaub, H für Halber Tag Urlaub und A für Abwesend.
Was wäre hier der bessere Weg, eine Select Case oder eine IF Then Struktur.
Wie würdest du vorgehen?
Und, wie würde der Code aussehen, wenn ich mit einer Schaltfläche das Ereignis auslösen möchte?
Ich habe es zwar probiert, bin aber prompt in die Falle getappt. Meine Vermutung ist, dass ich erst das Blatt aktivieren muss und mich dann in eine Zeile im Bereich stellen muss. Ist dies Falsch oder Richtig?
Dankeschön
Anzeige
AW: Gerne !
11.01.2021 13:09:22
onur
"Was wäre hier der bessere Weg, eine Select Case oder eine IF Then Struktur." - Keines davon, der Code könnte einfach das übernehmen, was in Spalte A steht, aber man müsste das "S" für Storno durch z.B. "X" ersetzen.
"wenn ich mit einer Schaltfläche das Ereignis auslösen möchte" - nur noch manuell oder zusätzlich dazu?
Ich würde das Makro auf das DoppelklickEvent legen, dann bräuchtest du nur noch auf A, C oder D doppelzuklicken und der Code müsste nicht verändert werden (ausser Cancel=Tue am Ende)
Anzeige
AW: Gerne !
11.01.2021 13:21:47
JoWE
Hallo,
so vllt. für die verschiedenen Abwesenheitstypen:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ze As Long, sp As Long, vTyp As String
If Target.Column  4 Then Exit Sub
ze = Target.Row
sp = Target.Column
vTyp = InputBox("Bitte Art der Abwesenheit auswählen" & vbCr & vbTab & "H = Halbtags" & _
vbCr & vbTab & "A = Abwesend" & _
vbCr & vbTab & "G = Ganztags" & _
vbCr & vbTab & "K = Krank" & _
vbCr & vbTab & "S = Sonderurlaub" & _
vbCr & vbTab & "leer lassen für Abbruch", "Eingabe erforderlich", "G")
If sp  4 And sp  3 And sp  1 Then Exit Sub
If Cells(ze, 3) = "" Or Cells(ze, 4) = "" Then Exit Sub
If Not IsDate(Cells(ze, 3)) And Not IsDate(Cells(ze, 4)) Then Exit Sub
If Cells(ze, 3) > Cells(ze, 4) Or Cells(ze, 4) - Cells(ze, 3) > 100 Then Exit Sub
Dim von, bis, dat, nam, mon(12), mo, Eintrag
Eintrag = vTyp: If Cells(ze, 1)  "U" Then Eintrag = ""
nam = Cells(ze, 2)
von = Cells(ze, 3)
bis = Cells(ze, 4)
For dat = 1 To 12
mon(dat) = Format(DateSerial(2011, dat, 1), "MMMM")
Next
For dat = von To bis
ze = 0
mo = Month(dat)
sp = Day(dat) + 6
On Error Resume Next
ze = WorksheetFunction.Match(nam, Sheets(mon(mo)).Range("B1:B30"), 0)
On Error GoTo 0
If ze = 0 Then
MsgBox "Name existiert auf Blatt " & mon(mo) & " nicht!"
Exit Sub
End If
With Sheets(mon(mo)).Cells(ze, sp)
Select Case vTyp
Case Is = "H"
.Interior.Color = 15461599
Case Is = "G"
.Interior.Color = 5296274
Case Is = "S"
.Interior.Color = 65535
Case Is = "K"
.Interior.Color = 255
Case Is = "A"
.Interior.Color = 14143015
Case Else
.Interior.ColorIndex = xlNone
End Select
Debug.Print .DisplayFormat.Interior.Color
If Weekday(dat, 2) 
Was den 2. Teil Deiner Frage betrifft, würde ich von einer Commandbutton-Lösung abraten und eher zu einer Doppelklicklösung (Worksheet BeforeDoubleClick) auf den zu buchenden Eintrag raten.
Gruß
Jochen
Anzeige
AW: Gerne !
11.01.2021 13:59:20
herbi
Hallo Jochen,
perfekt.
Klappt wunderbar.
Kann ich wieder etwas lernen.
Dankeschön.
Herbi
AW: ich sag' auch: Gerne! Und Onur, sorry fürs Ein
11.01.2021 14:06:38
JoWE
AW: ich sag' auch: Gerne! Und Onur, sorry fürs Ein
11.01.2021 14:06:55
JoWE
Anzeige
AW: ich sag' auch: Gerne! Und Onur, sorry fürs Ein
11.01.2021 14:08:52
onur
Kein Ding - Musst ihm nur noch schreiben, dass er die bedForms alle löschen kann/soll. :)
AW: ich sag' auch: Gerne! Und Onur, sorry fürs Ein
11.01.2021 14:54:38
Herbi
Hallo Onur, ok. Lösch alle bedForms...
Danke ihr Zwei.😀
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Urlaubskalender mit bedingter Formatierung in Excel optimieren


Schritt-für-Schritt-Anleitung

  1. Excel-Datei öffnen: Lade deinen Urlaubskalender Excel und öffne das entsprechende Arbeitsblatt (z.B. "Januar").

  2. Formel für die bedingte Formatierung einfügen:

    • Wähle den Bereich G7:AK7 aus.
    • Gehe zu Bedingte Formatierung > Neue Regel.
    • Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
    • Gib folgende Formel ein:
      =UND(WOCHENTAG(G$5;2)<6;G$5>=Urlaubsantrag!$C2;G$5<=Urlaubsantrag!$D2)
    • Setze das Format auf grün.
  3. Automatisches Eintragen von "G":

    • In Zelle G7 kannst du die Formel einfügen, die automatisch "G" einträgt:
      =WENN(UND(WOCHENTAG(G$5;2)<6;G$5>=Urlaubsantrag!$C2;G$5<=Urlaubsantrag!$D2);"G";"")
    • Kopiere die Formel bis zur Zelle AK7.
  4. VBA für erweiterte Funktionen:

    • Wenn du VBA verwenden möchtest, öffne den VBA-Editor (ALT + F11).
    • Füge ein neues Modul hinzu und kopiere den VBA-Code, der auf Änderungen in den Urlaubsanträgen reagiert.
    • Beispiel für einen vereinfachten Code:
      Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Column = 4 Then
           ' Code für die Bearbeitung der Abwesenheit
       End If
      End Sub

Häufige Fehler und Lösungen

  • Fehlermeldung bei der Formel:

    • Überprüfe, ob die Zellen C2 und D2 im Blatt "Urlaubsantrag" korrekt referenziert sind und ob die Datumsformatierung stimmt.
  • Zellen färben sich nicht:

    • Stelle sicher, dass die bedingte Formatierung korrekt eingerichtet ist. Es könnte sein, dass zusätzliche Regeln die Formatierung überschreiben.
  • Automatisches Eintragen funktioniert nicht:

    • Überprüfe, ob die Formel in den Zellen G7:AK7 korrekt eingefügt und kopiert wurde.

Alternative Methoden

  • Manuelle Eingabe: Wenn du die Automatisierung vermeiden möchtest, kannst du auch einfach die Buchstaben "G", "S" oder "H" manuell in die entsprechenden Zellen eingeben.

  • Verwendung von Dropdown-Menüs: Du kannst ein Dropdown-Menü in den Zellen einfügen, um die Eingabe zu vereinfachen. Gehe zu Daten > Datenüberprüfung und wähle Liste.


Praktische Beispiele

  • Urlaubsplanung 2021 Excel: Erstelle ein Jahr-übergreifendes Blatt, indem du die oben genannten Schritte für jeden Monat wiederholst und die Formeln anpasst.

  • Sonderurlaub und Abwesenheit: Füge zusätzliche Spalten für Sonderurlaub und Abwesenheiten hinzu und passe die Formeln entsprechend an, um diese zu berücksichtigen.


Tipps für Profis

  • VBA-Optimierung: Wenn du mit VBA arbeitest, denke daran, deine Codes regelmäßig zu kommentieren, um die Nachvollziehbarkeit zu erhöhen.

  • Datenvalidierung: Nutze Datenvalidierung, um Eingabefehler zu minimieren und sicherzustellen, dass nur gültige Daten in deinen Urlaubskalender gelangen.

  • Regelmäßige Sicherung: Mache regelmäßig Sicherungskopien deiner Excel-Dateien, um Datenverluste zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich die bedingte Formatierung für Feiertage anpassen? Du kannst zusätzliche Regeln in der bedingten Formatierung erstellen, um Feiertage auszuschließen. Füge Bedingungen hinzu, die überprüfen, ob das Datum ein Feiertag ist.

2. Ist VBA notwendig für einen Urlaubskalender in Excel? Nein, du kannst einen einfachen Urlaubskalender auch ohne VBA erstellen. Allerdings ermöglicht VBA erweiterte Funktionen und Automatisierungen.

3. Wie kann ich meine Urlaubstage zählen? Du kannst die Funktion ZÄHLENWENN verwenden, um die Anzahl der "G" in deinem Urlaubskalender zu zählen. Beispiel:

=ZÄHLENWENN(G7:AK7; "G")

4. Können mehrere Benutzer gleichzeitig auf den Urlaubskalender zugreifen? Ja, wenn der Urlaubskalender in einer gemeinsamen Umgebung wie OneDrive oder SharePoint gespeichert ist, können mehrere Benutzer gleichzeitig darauf zugreifen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige