Nur bestimmte (farbige) Zellen anzeigen lassen

Hallo allerseits,

habe folgendes Problem:
ich habe eine Excel - Tabelle, in denen 12 verschiedene Farben in den Zellen (z. B.: B9:AF61)eingetragen sind (mitunter auch mehrmals hintereinander pro Farbe).
Ganz oben in der Tabelle habe ich zu den eingetragenen Farben entsprechend farbige Command Buttons angelegt, die nun beim Anklicken nur die dementsprechenden farbigen Zellen (inklusive der eingetragenen Texte wie „A“, „E“, „R“ etc.) anzeigen soll (oder die nicht übereinstimmenden Zellen samt Farbe und Inhalt gelöscht werden und nur die übereinstimmenden Zellen übrig bleiben).
Für den Fall mit dem löschen habe ich mir schon ein Makro für eine Sicherheitskopie der Haupttabelle geschrieben.
Leider kriege ich keine Schleife für das Überprüfen der einzelnen Zellen mit der Anweisung z.B.: „.Interior.Colorindex = 7“ hin. Das Ergebnis / die Berechnung wollte ich in einer Nebentabelle (gleiches Tabellenblatt!!) z.B: (BT9:CX61) automatisch eintragen lassen, um dann erst das Ergebnis durch Click auf den Button in der Haupttabelle (A9:AF61) anzeigen zu lassen.
Hatte schon überlegt, eine eigene Function zu erstellen, weiß aber nicht, wie man das erkennen der Farbe in der durch die Function aktivierte Zelle deklariert und mir bei Übereinstimmung dann einen Wert z.B.: „1“ in die Zelle schreibt. Währe natürlich einfacher (glaube ich), da ich die Funktion als „Formel“ in jede Zelle kopieren kann.
Bin noch VBA-Neuling, aber vielleicht habt ihr ja wenigstens einen Denkanstoß für mich, falls keine Lösung vorhanden sein soll.
Schon mal vielen Dank
Gruß
Thomas

Hallo Thomas,
magste mal die Frage(n) neu formulieren, kürzer, präziser.
Ich blick nicht durch was genau du möchtest.
Danke.
Gruß
Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Reinhard,

sorry, wollte nur gleich alles ORDENTLICH bezüglich Erklärung machen. :smile:
Hier in Kurzform.

Habe in einer Exceltabelle (Dienstplanung) verschiedene Farben (jede Dienstposition 1e Farbe). In den farbigen Zellen steht noch „T“ oder „N“ für Tages-oder Nachtdienst. Nun habe ich gleichfarbige Buttons angelegt (12 Buttons für 12 verschiedene Dienstpositionen), die beim jeweiligen betätigen NUR die dazugehörigen Dienste in der Tabelle anzeigen sollen. So, war das kurz und präzise genug ?? :smile:

Gruß
Thomas

Hallo Thomas,
magste mal die Frage(n) neu formulieren, kürzer, präziser.
Ich blick nicht durch was genau du möchtest.
Danke.
Gruß
Reinhard

Habe in einer Exceltabelle (Dienstplanung) verschiedene Farben
(jede Dienstposition 1e Farbe). In den farbigen Zellen steht
noch „T“ oder „N“ für Tages-oder Nachtdienst. Nun habe ich
gleichfarbige Buttons angelegt (12 Buttons für 12 verschiedene
Dienstpositionen), die beim jeweiligen betätigen NUR die
dazugehörigen Dienste in der Tabelle anzeigen sollen. So, war

Hi Thomas
habs mal für 3 frabe/Biuttons ausgeführt. Ich denke es lässt sich easy für 12 anpassen. Die Farbwerte erhälst du in der vba-hilfe zu colorindex.

in den Codebereich des Tabellenblattes:
Private Sub CommandButton1\_Click()
Call anz(1)
End Sub
Private Sub CommandButton2\_Click()
Call anz(2)
End Sub
Private Sub CommandButton3\_Click()
Call anz(3)
End Sub

in ein Modul:
Option Base 1
Sub anz(a As Integer)
Dim ausw As Variant
ausw = Array(1, "A", 3, 2, "B", 36, 3, "C", 47)
ActiveSheet.Cells.Interior.ColorIndex = xlNone
ActiveSheet.Cells.Font.ColorIndex = 2
For n = 1 To 9 Step 3
 If a = ausw(n) Then
 Text = ausw(n + 1)
 Farbe = ausw(n + 2)
 End If
Next n
For Each Zelle In ActiveSheet.UsedRange
 If Zelle.Value = Text Then
 Zelle.Interior.ColorIndex = Farbe
 Zelle.Font.ColorIndex = 1
 End If
Next Zelle
End Sub

Gruß
Reinhard

Korrektur
Hi Thomas,
der Coder klappt zwar, aber für die Übersicht wärs doch beser wenn einige Überschriften sichtbar blieben*g
Also anstatt ActiveSheet.Cells
lieber ActiveSheet.Range(„A2:K500“) oder so benutzen.
Gruß
Reinhard

Hallo Reinhard,

danke für die prombte Antwort (und dazu noch ein Lösungsbeispiel!!).
Einfach Klasse.
Werd´s gleich mal ausprobieren (muß es dementsprechend noch anpassen, könnte daher etwas länger dauern, da VBA-Neuling).
Werde dann ein Feedback abgeben oder , falls noch Probleme auftauchen (ich hoffe nicht), mich sowieso nochmal melden.
Erstmal vielen vielen Dank dafür.

Gruß
Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

alles klar, Reinhard, Danke nochmal

Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Thomas,
vielleicht wärs überdenenkswert anstelle der 12 Buttons nur ein Listenfeld zu benutzen.
Dort klickst du mit rechts drauf, Eigenschaft und schreibst bei ListFillRange z.B. Tabelle2!A1:A12 rein.
In A1:A12 von Tabelle2 stehen deine Kürzel „N“ „T“ usw.
dann im Codeteil der tabelle:
Private Sub ListBox1_Click()
anz (ListBox1)
End Sub

und in einem Modul:
Option Base 1
Sub anz(a As String)
Dim ausw As Variant
ausw = Array("A", 3, "B", 36, "C", 47)
ActiveSheet.Range("A2:K500").Interior.ColorIndex = xlNone
ActiveSheet.Range("A2:K500").Font.ColorIndex = 2
For n = 1 To 6 Step 2
 If a = ausw(n) Then Farbe = ausw(n + 1)
Next n
For Each Zelle In ActiveSheet.UsedRange
 If Zelle.Value = a Then
 Zelle.Interior.ColorIndex = Farbe
 Zelle.Font.ColorIndex = 1
 End If
Next Zelle
End Sub

Gruß
Reinhard