Anzeige
Archiv - Navigation
720to724
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
720to724
720to724
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

mehrfache bed. Formatierung

mehrfache bed. Formatierung
17.01.2006 12:00:45
Thomas
Moin,
Eine Frage an VBA-Spezialisten - mit normalen Excel-Kenntnissen komme ich nicht weiter. Ich möchte gerne Zellen in einem bestimmten Bereich, entsprechend ihres Inhalts farblich formatieren. Die Inhalte wurden über 'Inhalte Einfügen' hineinkopiert und verknüpft und werden bei jedem Öffnen der Datei auch aktualisiert. Es handelt sich um 6-8 mögliche Inhalte = Abkürzungen.
Ich stelle mir folgendes vor:
-Befindet sich in der Zelle im Bereich X:Y z.B. ein "A" wird die Zelle "rot", bei einem "B" z.B. "grün" usw. Es kann automatisch bei jedem öffnen geschehen oder auch bei einem "Knopfdruck", Doppelklick auf eine Zelle o.Ä.
Wie bereits gesagt, ohne VBA komme ich nicht weiter. Vielleicht geht es relativ einfach und jemand könnte mir helfen.
Viele Grüße und vielen Dank
Thomas

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrfache bed. Formatierung
17.01.2006 12:26:35
Thomas
Danke für die schnelle Reaktion. Den Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then                                   ' Wenn Fokus auf Spalte A dann ...
Select Case Cells(Target.Row, 1)                        ' ... selektierte Zelle prüfen ob Inhalt ...
Case Is = "Meier"                                   ' gleich "Meier", dann ...
Cells(Target.Row, 1).Interior.ColorIndex = 3    ' Hintergrundfarbe rot
Case Is = "Müller"                                  ' gleich "Müller", dann ...
Cells(Target.Row, 1).Interior.ColorIndex = 6    ' Hintergrundfarbe gelb
' hier können weitere Zuweisungen folgen
End Select                                              ' Ende Anweisung
End If
End Sub

glaube ich zu verstehen, aber wie definiere ich einen bestimmten Bereich den das Makro auf Änderungen überprüfen sollte und nicht nur eine Spalte? z.B. von B2 bis O10?
Anzeige
AW: mehrfache bed. Formatierung
17.01.2006 13:01:20
Kay
Hallo Thomas,
anstelle if Target.Column
If Not Intersect(Target,Range("B2:O10"))Is Nothing Then
Select Case Cells(Target.Row,Target.Column)
...
Kay
AW: mehrfache bed. Formatierung
17.01.2006 13:47:24
Thomas
Hallo,
Danke für die Antworten. Leider klappt es noch nicht 100%tig. Weiter unten mein fast funktionierender Code. Fast, weil der nur dann funktioniert, wenn ich die Zellen direkt in der geöffneten Datei verändere und nicht bei Änderungen in den Quelldateien. Ich möchte das die Zellen automatisch (oder vielleicht durch Knopfdruck/Doppelklick etc.) beim Öffnen / Aktualisieren überprüft werden und beim bestimmten Inhalt Formatiert werden. (Siehe auch erstes Posting.) Ist es überhaupt machbar?
Thomas

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C5:GD89")) Is Nothing Then
Select Case Cells(Target.Row, Target.Column)
Case Is = "U" 'Urlaub
Cells(Target.Row, Target.Column).Interior.ColorIndex = 6
Cells(Target.Row, Target.Column).Font.ColorIndex = 6
Case Is = "R" 'Rest-Urlaub
Cells(Target.Row, Target.Column).Interior.ColorIndex = 6
Cells(Target.Row, Target.Column).Font.ColorIndex = 1
Case Is = "UU" 'Unbezahlter-Urlaub
Cells(Target.Row, Target.Column).Interior.ColorIndex = 6
Cells(Target.Row, Target.Column).Font.ColorIndex = 1
Case Is = "S" 'Sonder-Urlaub
Cells(Target.Row, Target.Column).Interior.ColorIndex = 6
Cells(Target.Row, Target.Column).Font.ColorIndex = 1
Case Is = "B" 'Bildungsurlaub-Urlaub
Cells(Target.Row, Target.Column).Interior.ColorIndex = 6
Cells(Target.Row, Target.Column).Font.ColorIndex = 1
Case Is = "K" 'Krankheit
Cells(Target.Row, Target.Column).Interior.ColorIndex = 5
Cells(Target.Row, Target.Column).Font.ColorIndex = 5
Case Is = "G" 'Gleittag
Cells(Target.Row, Target.Column).Interior.ColorIndex = 4
Cells(Target.Row, Target.Column).Font.ColorIndex = 4
Case Is = "GG" 'geplanter Gleittag
Cells(Target.Row, Target.Column).Interior.ColorIndex = 4
Cells(Target.Row, Target.Column).Font.ColorIndex = 1
Case Is = "W" 'Workshop / Schulung etc.
Cells(Target.Row, Target.Column).Interior.ColorIndex = 15
Cells(Target.Row, Target.Column).Font.ColorIndex = 15
Case Is = "KU" 'Kur
Cells(Target.Row, Target.Column).Interior.ColorIndex = 8
Cells(Target.Row, Target.Column).Font.ColorIndex = 8
Case Else
Cells(Target.Row, Target.Column).Interior.ColorIndex = xlNone
Cells(Target.Row, Target.Column).Font.ColorIndex = 0
End Select
End If
End Sub

Anzeige
AW: mehrfache bed. Formatierung
17.01.2006 14:16:55
Kay
Hallo,
dann gehe ich davon aus das dort Formeln drin Stehen und dadurch die veränderung entsteht, dann sollte die funktionieren, dauert aber halt estwas.

Private Sub Worksheet_Calculate(ByVal Targe)
Application.ScreenUpdating = False
Dim c
For Each c In Range("C5:GD89")
Select Case c
Case Is = "U" 'Urlaub
c.Interior.ColorIndex = 6
c.Font.ColorIndex = 6
Case Is = "R" 'Rest-Urlaub
c.Interior.ColorIndex = 6
c.Font.ColorIndex = 1
Case Is = "UU" 'Unbezahlter-Urlaub
c.Interior.ColorIndex = 6
c.Font.ColorIndex = 1
Case Is = "S" 'Sonder-Urlaub
c.Interior.ColorIndex = 6
c.Font.ColorIndex = 1
Case Is = "B" 'Bildungsurlaub-Urlaub
c.Interior.ColorIndex = 6
c.Font.ColorIndex = 1
Case Is = "K" 'Krankheit
c.Interior.ColorIndex = 5
c.Font.ColorIndex = 5
Case Is = "G" 'Gleittag
c.Interior.ColorIndex = 4
c.Font.ColorIndex = 4
Case Is = "GG" 'geplanter Gleittag
c.Interior.ColorIndex = 4
c.Font.ColorIndex = 1
Case Is = "W" 'Workshop / Schulung etc.
c.Interior.ColorIndex = 15
c.Font.ColorIndex = 15
Case Is = "KU" 'Kur
c.Interior.ColorIndex = 8
c.Font.ColorIndex = 8
Case Else
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = 0
End Select
Next c
Application.ScreenUpdating = True
End Sub

Gruß
Kay
Anzeige
AW: mehrfache bed. Formatierung
17.01.2006 14:18:56
Kay
kleiner Fehler:
Private Sub Worksheet_Calculate(ByVal Targe)
muss so
Private Sub Worksheet_Calculate()
Klappt! -noch ne Kleinigkeit? :-)
17.01.2006 14:47:23
Thomas
Super Kay! Danke schön. Funktioniert prima. Beide Scripte nacheinander erlauben beide Funktionalitäten dh. manuelles Nachtragen wie auch die automatische Formatänderung bei Übernahme/Abgleich der Werte aus den Quelldateien. So habe ich es mir vorgestellt.
Nur eine kleine Frage:
Die Tabelle war in dem Bereich manuell vorformatiert worden (Wochenenden farblich). Dein "calculate-Script" hat jedoch alle Formatierungen, auch die in denen die "Schlüsselbuchstaben" (U, S, W, usw.) nicht enthalten waren entfernt, somit auch die farbliche Kennzeichnung der WE. Kann man die irgendwie behalten bzw. den Wirkungsbereich des Scriptes nur auf Zellen einschränken in denen die "Schlüsselbuchstaben" enthalten sind?
Trotzdem nochmal vielen vielen Dank!!
Grüße
Thomas
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige