Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Farbe des Tabellenreiters auslesen

Forumthread: Farbe des Tabellenreiters auslesen

Farbe des Tabellenreiters auslesen
04.07.2016 12:46:52
Heinz
Hallo Liebe Excellenten,
ich habe folgende Herausforderung.
In meinem Team gibt es eine Excel-Datei, in welcher für jedes
Projekt ein eigenes Tabellenblatt vorliegt.
z.B.
PR1001
PR6003
PR8001
Die Tabellenreiter werden von meinen Kollegen manuell eingefärbt, je nachdem,
ob das Projekt
- noch nicht beauftragt wurde (gelb)
- gerade läuft (grün)
- schon abgeschlossen ist (schwarz).
In einer Zusammenfassung aller Projekte auf einer Seite stehen
alle Projektnamen in der Spalte A untereinander.
Die Kollegen tragen hier (für eine schnelle Übersicht) manuell ein, ob das Projekt
- noch nicht beauftragt wurde (=1)
- gerade läuft (=2)
- schon abgeschlossen ist (=3).
Ich kann/ muss ab und an überprüfen, ab die Einfärbung der Tabellenreiter
mit den manuellen Angaben übereinstimmt.
Gibt es die Möglichkeit mit einem Makro abzufragen,
welche Farbe der Tabellenreiter (RGB) aufweist.
Sinngemäß:
Makro nimmt die Projektbezeichnung aus Zelle A1,
sucht sich den Tabellenreiter mit der Bezeichnung,
ermittelt die Farbe
und schriebt diese in die Zelle B1
und geht dann in die Zelle A2 ... usw.
Ich freue mich auf eure Vorschläge und wünsche allen einen schönen Tag.
Heinz

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbe des Tabellenreiters auslesen
04.07.2016 13:35:03
Michael
Hi Heinz,
das geht im Prinzip so:
Option Explicit
Sub Makro1()
' Makro1 Makro
' Das setzen wird so aufgezeichnet:
Sheets("Tabelle2").Select
With ActiveWorkbook.Sheets("Tabelle2").Tab
.Color = 49407
.TintAndShade = 0
End With
End Sub
' Daraus ergibt sich:
Sub BlattTabCol()
Dim farbe
farbe = ActiveSheet.Tab.Color
If farbe = False Then
MsgBox "Farbe nicht gesetzt."
Else
MsgBox "Farbe Nr. " & farbe
End If
End Sub
Die allgemeine Variante liest alle Blätter aus und überprüft, ob sie in der Übersicht (hier als "Master" betitelt) vorhanden sind:
Sub BlattAlle()
Dim sh As Worksheet
Dim farbe, treffer
Dim Proj As Range
Set Proj = Sheets("Master").Range("A2:A4") ' hier Bereich, in dem die Projekte stehen
For Each sh In ThisWorkbook.Worksheets
treffer = Application.Match(sh.Name, Proj, 0)
If Not IsError(treffer) Then
farbe = sh.Tab.Color
If farbe = False Then
Sheets("Master").Range("B" & treffer + 1) = "n.v."
Else
Sheets("Master").Range("B" & treffer + 1) = farbe
End If
End If
Next
End Sub
Schöne Grüße,
Michael

Anzeige
AW: Farbe des Tabellenreiters auslesen
04.07.2016 14:06:35
snb
Es wäre doch einfacher die Kollegen nur in "master' eintragen zu lassen was der Status eines Projekts ist.
Dann können die Farben automatisch hergestellt werden.
Sub M_snb()
sn=sheets("master").cells(1).currentregion
for j=1 to ubound(sn)
sheets(sn(j,1)).tabcolor=choose(sn(j,2),xlred,xlgreen,xlblue)
next
End Sub

Anzeige
einerseits,
04.07.2016 14:34:15
Michael
aber dann mußt Du Dich wieder darum kümmern, ob die Blattnamen überhaupt da sind, damit es keine Fehler hagelt.
Wäre aber auch nicht schlecht, weil man dann einen entsprechenden Fehlerwert schreiben könnte.
Naja, er soll sich's halt aussuchen.
Gruß,
Michael

ausgezeichnet ...
06.07.2016 14:05:52
Heinz
Hallo Bernd, Michael und snb,
vielen Dank.
Ich habe die Lösung von Michael übernommen und adaptiert (Makro 2),
auch wenn ich das erste Makro nicht verstanden habe ;-)
Was mit als Makro-Unwissender besonders gefällt ist die
Tatsache, dass im Makro auch gleich eine Kommentierung
enthalten ist.
Heinz

Anzeige
freut mich,
07.07.2016 17:40:53
Michael
Heinz,
das "1. Makro" namens "Makro1" ist nur eine Aufzeichnung mit dem Makrorekorder, bei der ich einfach die nächstbeste Farbe gesetzt habe, um zu sehen, wie das Ding heißt, hoppla, natürlich die "Eigenschaft".
Schöne Grüße,
Michael
;
Anzeige
Anzeige

Infobox / Tutorial

Farbe des Tabellenreiters auslesen in Excel


Schritt-für-Schritt-Anleitung

Um die Farbe der Tabellenreiter auszulesen und in einer Excel-Tabelle darzustellen, kannst du ein einfaches VBA-Makro verwenden. Folgendes Vorgehen ist notwendig:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub BlattAlle()
       Dim sh As Worksheet
       Dim farbe, treffer
       Dim Proj As Range
       Set Proj = Sheets("Master").Range("A2:A4") ' Hier den Bereich anpassen, in dem die Projekte stehen
       For Each sh In ThisWorkbook.Worksheets
           treffer = Application.Match(sh.Name, Proj, 0)
           If Not IsError(treffer) Then
               farbe = sh.Tab.Color
               If farbe = False Then
                   Sheets("Master").Range("B" & treffer + 1) = "n.v."
               Else
                   Sheets("Master").Range("B" & treffer + 1) = farbe
               End If
           End If
       Next
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Drücke ALT + F8, wähle BlattAlle aus und klicke auf Ausführen.

Dieses Makro durchläuft alle Tabellenblätter und vergleicht die Namen mit den Einträgen in der "Master"-Tabelle. Die Farbe des Tabellenreiters wird dann in die entsprechende Zelle eingetragen.


Häufige Fehler und Lösungen

  • Fehler: "Farbe nicht gesetzt": Dieser Fehler kann auftreten, wenn der Tabellenreiter keine Farbe hat. Stelle sicher, dass die Tabellenreiter korrekt eingefärbt sind.
  • Fehler: "n.v.": Dies bedeutet, dass der Tabellenreiter nicht in der Übersicht gefunden wurde. Überprüfe die Namen der Tabellenreiter und die Einträge in der "Master"-Tabelle.
  • Punkt für Punkt abarbeiten: Achte darauf, dass der Bereich Sheets("Master").Range("A2:A4") an deine spezifischen Bedürfnisse angepasst ist.

Alternative Methoden

Eine einfachere Methode wäre, die Kollegen direkt in der "Master"-Tabelle den Status des Projekts eintragen zu lassen und die Farben automatisch zu setzen. Hier ist ein Beispiel für ein alternatives Makro:

Sub M_snb()
    sn = Sheets("master").Cells(1).CurrentRegion
    For j = 1 To UBound(sn)
        Sheets(sn(j, 1)).Tab.Color = Choose(sn(j, 2), xlRed, xlGreen, xlBlue)
    Next
End Sub

Mit diesem Makro kannst du die Farben direkt basierend auf den Statusangaben setzen, wodurch das manuelle Einfärben der Tabellenreiter entfällt.


Praktische Beispiele

Du kannst das oben genannte Makro anpassen, um spezifische Farben für bestimmte Statuswerte zu verwenden:

  • Projektstatus "nicht beauftragt": Gelb (RGB: 255, 255, 0)
  • Projektstatus "läuft": Grün (RGB: 0, 255, 0)
  • Projektstatus "abgeschlossen": Schwarz (RGB: 0, 0, 0)

Falls du die Farbe des Tabellenreiters auslesen und in einer Zelle darstellen möchtest, kannst du den Farbwähler verwenden, um den RGB-Wert zu ermitteln.


Tipps für Profis

  • Verwende Kommentare: Kommentiere deinen Code gut, besonders wenn du mit anderen zusammenarbeitest. So verstehst du später schneller, was jeder Abschnitt des Codes bewirken soll.
  • Teste deine Makros: Führe deine Makros immer zuerst in einer Kopie deiner Arbeitsmappe aus, um unbeabsichtigte Änderungen zu vermeiden.
  • Nutze Fehlerbehandlung: Füge Fehlerbehandlungsroutinen in deine Makros ein, um sie robuster zu machen. Beispiel:

    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0

FAQ: Häufige Fragen

1. Wie kann ich die Farbe des Tabellenreiters manuell ändern? Du kannst mit der rechten Maustaste auf den Tabellenreiter klicken und "Tabellenblattfarbe" auswählen, um eine neue Farbe zu wählen.

2. Welche Excel-Version wird benötigt? Das oben genannte VBA-Makro sollte in Excel 2007 und höheren Versionen funktionieren. Stelle sicher, dass du die Makros in deinen Excel-Einstellungen aktiviert hast.

3. Kann ich das Makro anpassen, um mehr Informationen auszulesen? Ja, du kannst das Makro anpassen, um zusätzliche Informationen wie den Erstellungsdatum des Blattes oder andere Eigenschaften auszulesen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige