Tabelle formatieren für bessere Lesbarkeit

Cäme

Mitglied
Hallo zusammen

Ich habe eine lange Tabelle (Excel 2007) und möchte diese zur besseren Lesbarkeit so formatieren, dass abwechselnd, wenn sich der Wert der ersten Spalte ändert, die Zeilenfarbe ändert. Möglichst nicht manuell.

Mit der bedingten Formatierung kann ich jede zweite Zeile einfärben, aber wie mache ich dies wie in meinem angehängten Beispiel?

Vielen Dank für Eure Hilfe
Cäme
 

Cäme

Mitglied
Ergänzung

Noch zu ergänzen ist, dass es eben nicht immer drei Zeilen mit dem gleichen Inhalt der ersten Zeile ist, sondern mal 6, 4 oder auch nur eine.

Danke vorab
 

Turakos

Stammgast
Hallo Cäme

Spärliche Informationen und eine Struktur der Tabelle, die sehr schwierig daraus etwas Vernünftiges zu kreieren.
Ich frage mich, was dieser Tabellen-Aufbau überhaupt soll, z.B. der Vorname möglicherweise Key erscheint z.B. in 3 Zeilen. Daten werden vorzugsweise als Datensatz (Record) in eine Zeile geschrieben, der Key kann z.B. in der Spalte A stehen und alle anderen Informationen in den folgenden Spalten. Überleg dir den Tabellen-Aufbau noch einmal. Für die Lösung deines Problems kommt nach meiner Auffassung nur ein VBA-Anwendung in Frage, die erkennt, wenn der Inhalt einer Zeile ändert, ist die ganze Zeile farblich zu kennzeichnen. Möglicher Tabellen-Aufbau siehe bitte Screenshot.
 

weer

Stammgast
Hallo Cäme

Wie Du sehe auch ich einen Weg mit der bedingten Formatierung. Dazu zwei Voraussetzungen:
a) Die oberste Zeile darf nur Spaltenbeschriftungen enthalten oder muss leer sein.
b) Ich muss eine Hilfsspalte einrichten: Ich habe mal eine neue Spalte B eingerichtet, die man ja dann ausblenden kann. In B1 steht die Zahl 0. In B2 steht folgende Formel:
=REST((A2=A1)+B1+1;2)
Diese Formel kopierst Du in der Spalte B nach unten.
Neben Karl sollte nun 1 stehen, neben Emil 0, neben Luisa 1 usw.
Und nun die bedingte Formatierung: Du markierst Deine Daten von A1:xy. Die Formel für die bedingte Formatierung heisst:
=$B1=1
Ich hoffe, ich habe mich unklar genug ausgedrückt!

Kennst Du Dich aus mit VBA? Da gibt es sicher eine elegantere Lösung. Aus dem FF fällt mir im Augenblick nichts Vernünftiges ein. Aber da liesse sich sicher was machen.

Grüsse Niclaus
 

weer

Stammgast
Variante mit VBA

Hallo Cäme

Hier noch ein Makro zum Einfärben der Zeilen. Sobald in Spalte A eine Eingabe gemacht wird, werden die Zeilen des benutzten Bereiches (UsedRange) bläulich eingefärbt. Der Bereich kann selbstverständlich anders definiert werden.

Zu beachten ist: Das Makro darf im VBA-Editor nicht als Modul eingegeben werden. Es muss unter den Excel Objekten in der betreffenden Tabelle eingegeben werden.
Grüsse Niclaus

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column <> 1 Then Exit Sub

Dim find1, find2 ' "Farbindex"
Dim urr, urc, z
urr = ActiveSheet.UsedRange.Rows.Count
urc = ActiveSheet.UsedRange.Columns.Count

For z = 2 To urr
If Cells(z, 1) <> Cells(z - 1, 1) Then
find1 = find1 + 1
find2 = find1 Mod 2
End If
With Range(Cells(z, 1), Cells(z, urc)).Interior
If find2 = 1 Then
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight2
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End If
If find2 = 0 Then
.ColorIndex = xlNone
End If
End With
Next z
End Sub
 

Yabby

Neues Mitglied
Hallo weer,

ich bin auf der Suche nach einem Makro genau auf das beschriebene gestoßen; grundsätzlich funktioniert es tadellos, ich habe nur eine Frage zur Anpassung:

-Ich möchte dass die Markierung für mehrere Spalten erfolgt
-Die Markierung soll ab einer definierten Zelle starten bis zu einer definierten Zelle (oder ggf. Ende des Arbeitsblattes, das wäre auch ok)

Könntest Du mir hier ggf. weiterhelfen?

Beste Grüße
David Best
 

weer

Stammgast
Hallo David
Nach 6 Jahren geistert mein Beitrag immer noch im Netz herum!
Ich verstehe nicht, was in Deiner Tabelle passieren soll.

-Ich möchte dass die Markierung für mehrere Spalten erfolgt
Was meinst Du mit Markierung? Ist für Dich Markierung der Bereich der eingefärbten Zellen?

-Die Markierung soll ab einer definierten Zelle starten
Im Makro beginnt der Bereich der eingefärbten Zellen ab Zeile 2. Das wird definiert mit:
For z = 2 To urr
Statt 2 kannst Du jede andere Zeilen-Nummer eingeben.

bis zu einer definierten Zelle (oder ggf. Ende des Arbeitsblattes)
Das "bis" wird im Makro definiert mit
urr = ActiveSheet.UsedRange.Rows.Count
urc = ActiveSheet.UsedRange.Columns.Count

Es wird so der ganze benutzte Teil des Arbeitsblattes (ab Zeile 2) eingefärbt: UsedRange.
Du kannst mit urr und urc auch Zeilen-Nummern und Spalten-Nummern frei bestimmen.

Beschreibe doch, was in Deinem Arbeitsblatt genau geschehen soll. Noch besser, wenn Du Deine Datei hochladen kannst.

Grüsse Niclaus
 
Oben