Herbers Excel-Forum - das Archiv

Makro für Zellenfarbe

Bild

Betrifft: Makro für Zellenfarbe
von: Dirk T.

Geschrieben am: 22.12.2006 23:12:54
Hallo Ihr fleißigen Helfer,
habe mal wieder ein Problem, hoffe ihr seid noch nicht im Weihnachts"wahn"
möchte meine Tabelle farblich gestalten, klappt nur eingeschränkt.
Habe es bisher so gemacht, dass Spalte A und die ersten 2 Zeilen grau hinterlegt sind (Überschriften), ab da gehören eigentlich immer 2 Spalten zusammen (farblich gesehen)
mit meinem Makro frage ich die 3. Zeile der beiden Spalten auf gleiche Farbe ab,
bei Gleichheit werden beide Spalten minus der Überschriftzeilen in der entsprechenden Farbe gefärbt.
wird versucht eine andere Zelle zu färben, soll die eingestelle Farbe wiederhergestellt werden.
bei Ungleichheit soll keine Farbe (weil halt nicht eindeutig)und eine Fehlermeldung kommen.
Dies passiert auch, aber halt auch wenn ich die Daten eingebe und bestätige.
Ist ganz schön schwierig zu erklären, hoffe man versteht was ich meine
https://www.herber.de/bbs/user/39171.xls
Meine Frage lautet eigentlich, wie kann, bzw. muß ich mein Makro umbauen, dass ich nur gleiche Farben habe kann, und nur eine Fehlermeldung kommt, und oder ich(bzw. jeder andere Nutzer) irgendeine Zelle ändert und damit beide Spalten automatisch ändert.
Dann möchte ich noch fragen, ob es möglich ist, nur bestimmte (blasse) Farben zuzulassen,bzw. auszusuchen, da die kräftigen Farben für andere Zwecke gebraucht werden
Dann hab ich noch eine Frage zu vba, es gibt doch das Direktfenster, Lokalfenster und Überwachungsfenster, wie nutzt man diese sinnvoll???
Herzlichen Dank für Eure Bemühungen, und schon mal frohes Fest
Dirk
Bild

Betrifft: AW: Makro für Zellenfarbe
von: fcs

Geschrieben am: 23.12.2006 02:51:27
Hallo Dirk,
hier mein Änderungsvorschlag für dein Makro inkl. Farbauswahl-Beschränkung
Die Farbbeschränkung bezieht sich auf die Farben mit der Excel-Standardeinstellung für die Farbpalette.
Gruss
Franz
Private LastZelle As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If LastZelle Is Nothing Then
Set LastZelle = Target
Else
If LastZelle.Row > 2 And LastZelle.Column > 1 Then
Select Case LastZelle.Column
Case 2, 3
If LastZelle.Address = "$B$3" Then
Call Farbpruefung("B3", "B3:C65536")
End If
If LastZelle.Interior.ColorIndex <> Range("B3").Interior.ColorIndex Then
Call Faerben("B3", "B3:C65536")
End If
Case 4, 5
If LastZelle.Address = "$D$3" Then
Call Farbpruefung("d3", "d3:E65536")
End If
If LastZelle.Interior.ColorIndex <> Range("D3").Interior.ColorIndex Then
Call Faerben("D3", "D3:E65536")
End If
Case Is > 5
If LastZelle.Address = "$F$3" Then
Call Farbpruefung("f3", "f3:ag65536")
End If
If LastZelle.Interior.ColorIndex <> Range("F3").Interior.ColorIndex Then
Call Faerben("F3", "F3:AG65536")
End If
Case Else
'do nothing
End Select
End If
Set LastZelle = Target
End If
End Sub
Private Sub Faerben(Zelle As String, Bereich As String)
MsgBox "Spalte ""von"" und ""bis"" müssen die gleiche Farbe haben" & vbLf & vbLf & _
"Es gilt die Farbe von Zelle " & Zelle & "!!"
Range(Bereich).Interior.ColorIndex = Range(Zelle).Interior.ColorIndex
End Sub
Private Sub Farbpruefung(Zelle As String, Bereich As String)
pruefung as Boolean
Select Case LastZelle.Interior.ColorIndex
Case 0, 33 To 45 'zulässige Farben
pruefung = True
Case Else
MsgBox "Zulässig sind nur die Füllfarben " & vbLf _
& "0   weiß" & vbLf _
& "33  himmelblau" & vbLf _
& "34  pastellgrün" & vbLf _
& "35  helles türkis" & vbLf _
& "36  hellgelb" & vbLf _
& "37  blaßblau" & vbLf _
& "38  hellrose" & vbLf _
& "39  Lavendel" & vbLf _
& "40  gelbbraun" & vbLf _
& "41  hellblau" & vbLf _
& "42  aquablau" & vbLf _
& "43  gelbgrün" & vbLf _
& "44  gold" & vbLf _
& "45  helles orange" & vbLf
pruefung = False
End Select
If pruefung = True Then
Range(Bereich).Interior.ColorIndex = Range(Zelle).Interior.ColorIndex
Else
Range(Bereich).Interior.ColorIndex = Range(Zelle).Offset(200, 0).Interior.ColorIndex
End If
End Sub

Bild

Betrifft: AW: Makro für Zellenfarbe - Korrktur
von: fcs

Geschrieben am: 23.12.2006 03:00:24
Hallo Dirk,
kleine Korrektur, der Colorindex für Farbe Weiß ist 2 bitte folgende Zeilen anpassen:
Private Sub Farbpruefung(Zelle As String, Bereich As String)
pruefung as Boolean
Select Case LastZelle.Interior.ColorIndex
Case 2, 33 To 45 'zulässige Farben
pruefung = True
Case Else
MsgBox "Zulässig sind nur die Füllfarben " & vbLf _
& "2   weiß" & vbLf _
& "33  himmelblau" & vbLf _

Gruss
Franz
Bild

Betrifft: AW: Makro für Zellenfarbe - Korrktur
von: Dirk T.
Geschrieben am: 23.12.2006 14:18:55
Hallo Franz,
das ist ja wie Weihnachten, wow herzlichen Dank, werde es gleich ausprobieren
Vielen Dank und ein schönes Weihnachtsfest wünsch ich
Dirk
 Bild