Es geht darum einen Schichtplan einzufärben. Da es aber zu viele unterschiedliche Einträge gibt, ist die Bedingte Formatierung nicht möglich.
Vielen Dank im voraus.
fals es sich um Eingaben handelt, kannst Du mit folgendem Makro 56 Farben einstellen.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
' Schrift
Dim Bereich As Range
Dim Zelle As Range
' Bereich der Wirksamkeit
Set Bereich = Range("B3:C20")
' ActiveSheet.Unprotect
For Each Zelle In Range(Target.Address)
' überprüfen ob Zelle im vorgegebenen Bereich
If Not Intersect(Zelle, Bereich) Is Nothing Then
' Kreuz entfernen
Zelle.Borders(xlDiagonalDown).LineStyle = xlNone
Zelle.Borders(xlDiagonalUp).LineStyle = xlNone
Select Case Zelle.Value
Case "1"
With Zelle
With .Borders(xlDiagonalDown)
.LineStyle = xlContinuous
.Weight = xlThick
End With
With .Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Weight = xlThick
End With
End With
Zelle.Font.ColorIndex = 25
Case "2"
Zelle.Font.ColorIndex = 24
Case "3"
Zelle.Font.ColorIndex = 3
' usw.
Case Else
Zelle.Font.ColorIndex = 0
End Select
End If
Next Zelle
' ActiveSheet.Protect
End Sub
Code eingefügt mit: Excel Code Jeanie
Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein
Gruß Georg
hoffe ich habe Dich richtig verstanden. Du willst in einem Tabellenblatt alle Zellen mit einem bestimmten Eintrag in einer Farbe darstellen und einen anderen Eintrag wiederum in einer anderen Farbe?
Ich würde folgendes Makro benutzen, welches den Eintrag sucht und dann die Zelle entsprechend einfärbt:
Sub Formatierung()
Cells.Find(What:="Eingabe", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
With Selection.Interior
.ColorIndex = 50
.Pattern = xlSolid
End With
End Sub
Anstatt Eintrag müsstest Du dann halt immer den jeweiligen Eintragsnamen direkt eingeben und jedesmal dann einen anderen ColorIndex vergeben.
Vielleicht ist meine Lösung auch viel zu umständlich, ich bin leider kein so Makro-Crack wie viele andere hier. Vielleicht hat auch jemand eine andere Lösung.
Gruß
Carmen