Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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
Inhaltsverzeichnis

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

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

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

Anzeige
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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige