Bedingte Formatierung im Schichtplan?

Hallo.

Ich erstelle zur ezit in Excel unsere schichtpläne und das ganze funktioniert soweit sehr gut.

Jedoch würde ich gerne mehr als die drei möglichen Bedingten Formatierungen in die tabellen einbinden.

Gibts da eine andere möglichkeit die Zellen, bei einem Bestimmten wert, farblich zu hinterlegen?

Gruß Peter

Hallo Peter.

Ich denke, Du solltest dafür VBA verwenden. Wieviele Bedingungen kommen denn zusammen? Kannst ja mal ein paar Beispiele posten.

Viele Grüße
Carsten

Hallo Carsten.

Also im grunde haben wir 5 Verschiedene schichten
F,S,N,D1,D2
dazu kommt dann noch U,K,R,L und -
(Urlaub,Krank,Reisetag,Lehrgang und der Off Day.

Also wären es 10 variable einstellungen.

Gruss Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Peter.

Ich habe hier mal einen allerersten Ansatz. Da ich nicht weiß, wie Du die Bedingungen in die Zellen einträgst, bin ich für dieses Beispiel davon ausgegangen, daß sie von Hand eingetragen werden.

So, falls Du noch nie mit VBA in Excel gearbeitet hast, dann wirds jetzt ein bißchen kompliziert, ich mache aber eine Schritt-für-Schritt Anleitung. Hier kommt sie:

  • starte Excel.

  • gehe ins Menü „Extras“, zeige auf den Eintrag „Makro“ und klicke dann auf Visual Basic-Editor.

  • jetzt bist Du im Visual Basic-Editor

  • normalerweise links im Bild ist der sogenannte „Projekt-Explorer“ zu sehen.

  • doppelklicke im Projekt-Explorer auf den Eintrag „Tabelle1 (Tabelle1)“.

  • es öffnet sich das sogenannte Code-Fenster, das noch leer ist.

  • kopiere bitte den folgenden Code in dieses Code-Fenster:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Target.Text
    Case „F“
    Target.Interior.ColorIndex = 3
    Case „S“
    Target.Interior.ColorIndex = 6
    Case „N“
    Target.Interior.ColorIndex = 4
    Case „D1“
    Target.Interior.ColorIndex = 41
    Case „D2“
    Target.Interior.ColorIndex = 15
    Case „U“
    Target.Interior.ColorIndex = 44
    Case „K“
    Target.Interior.ColorIndex = 36
    Case „R“
    Target.Interior.ColorIndex = 35
    Case „L“
    Target.Interior.ColorIndex = 37
    Case „OffDay“
    Target.Interior.ColorIndex = 24
    Case Else
    Target.Interior.ColorIndex = xlNone
    End Select
    End Sub

  • klicke im Menü „Debuggen“ auf „Kompilieren von VBAProjekt“.

  • verlasse den Visual Basic-Editor.

So, das war’s eigentlich schon. Wie gesagt, es ist nur ein erster Ansatz, der auch noch ziemlich primitiv ist. Um zu einem Ergebnis zu kommen, müssen die Zellen die Texte tatsächlich so enthalten, wie sie im Code abgefragt werden. Das bedeutet, Du mußt noch die Groß- und kleinschreibung beachten. Die Farben hab’ ich auch nur auf die Schnelle gewählt, die kann man natürlich noch ändern.

Soweit erstmal, kannst Du ja mal ausprobieren.

Viele Grüße
Carsten

Also im grunde haben wir 5 Verschiedene schichten
F,S,N,D1,D2
dazu kommt dann noch U,K,R,L und -
(Urlaub,Krank,Reisetag,Lehrgang und der Off Day.

Hi Peter,
probiers mal so:

Option Explicit
Private Sub Worksheet\_Change(ByVal Target As Range)
Dim T, F, n
T = Array("F", "S", "N", "D1")
F = Array(3, 4, 5, 6)
For n = 0 To UBound(T)
 Target.Interior.ColorIndex =xlnone 
 If Target = T(n) Then Target.Interior.ColorIndex = F(n)
Next n
End Sub

Gruß
Reinhard

Thanks euch beiden :smile:
Servus ihr beiden.

Danke für eure mühe!
Ihr geht richtig davon aus, das ivh von VBA gar keine ahnung habe :smiley:

Jedoch habe ich heute morgen im netz ein sript gefunden, ist wohl auch so was in der art (scheint ein makro zu sein), welches mir die moeglichkeit gibt bis zu 30 formatierungen zu erstellen. Und da der mensch von sich aus fauel ist,…

Danke nochmal an euch beide!

Gruss Peter

Hier der link dazu…
http://www.xldynamic.com/source/xld.CFPlus.Download…