HERBERS Excel-Forum - das Archiv

Thema: Filtern und Formatierungsrechte nach Zellenwerten erteilen

Filtern und Formatierungsrechte nach Zellenwerten erteilen
Petra
Hallo zusammen,
ich hoffe einer oder eine kann mir weiterhelfen.
Meine VBA-Kenntnisse sind bescheiden und besteht meist aus Codefetzen aus dem Netz.
Meist konnte ich mir durch stundenlanges suchen selber helfen, doch jetzt reicht auch das nicht mehr aus :-(
Sorry für den langen Text, ich versuche es so genau wie möglich zu beschreiben.

Zum Problem:
Ich habe ein Arbeitsblatt, in Spalte C ab Zeile 5 stehen Mitarbeiternamen untereinander aufgelistet, in Spalte A ab Zeile 5 stehen die möglichen Gruppen der ein Mitarbeiter angehört.
Ein anderes Makro hat mir die Zellen A2, A4 und C2 mit den benötigten Daten gefüllt.
In Zelle A2 steht die Berechtigung die ein Mitarbeiter hat. Es gibt 3 mögliche Berechtigungen, „admin1“, „Aufsicht“ und „Standard“.
In Zelle A4 steht die Gruppenbezeichnung nach der in Spalte A ab A5 gefiltert werden soll.
In Zelle C2 steht der mögliche Mitarbeiter.

Hier zwei Beispieldateien:
Datei ohne Code https://www.herber.de/bbs/user/162477.xlsx
Datei mit Code https://www.herber.de/bbs/user/162478.xlsm

Ich benötige ein Makro, welches nach den Werten in A2, A4 und C2 die Liste filtert und den Mitarbeitern die Formatierung der Tabelle mal mehr oder weniger einschränkt.

Filter:
Es soll nur der Mitarbeiter und seine Gruppenmitglieder angezeigt werden. Wie zuvor beschrieben, steht der Name des Mitarbeiters in Zelle C2, seine Gruppe steht in Zelle A4. Die Zeilen mit einer anderen Gruppe werden ausgeblendet.

Wenn in der Zelle C2 „admin“ steht wird die Liste nicht gefiltert und alle Zeilen bleiben eingeblendet.

Einschränkungen:
Wenn in Zelle A2 „admin1“ steht gibt es keine Einschränkungen.

Wenn in Zelle A2 „Standard“ steht, kann nur die einzelne Zeile mit den zuvor gefilterten Mitarbeiter aus Zelle C2 zwischen den Spalten „J“ ab „J5“ bis „AN“ ab „AN5“ bearbeitet werden. Die Eintragungen die mit der Berechtigung „Standard“ gemacht werden können sind ausschließlich in Schriftfarbe „rot“.

Zusätzlich sollen bei der Berechtigung „Standard“ die nachfolgenden Einschränkungen ganz unten aufgelistet vorgenommen werden.

Wenn in Zelle A2 „Aufsicht“ steht, kann die einzelne Zeile mit den zuvor gefilterten Mitarbeiter aus Zelle C2 zwischen den Spalten „J“ ab „J5“ bis „AN“ ab „AN5“ wie bei der Berechtigung „Standard“ nur in „rot“ bearbeitet werden. Alle anderen Zellen zwischen den Spalten „J“ ab „J5“ bis „AN“ ab „AN5“ können mit jeder beliebige Schriftfarbe verändert werden.

Zusätzlich sollen bei der Berechtigung „Aufsicht“ die nachfolgenden Einschränkungen ganz unten vorgenommen werden.
Hier wäre zu beachten, dass ja jede Farbe auswählbarsein soll, außer in der Zeile des zuvor gefilterten Mitarbeiters.

Ich hoffe auf Eure Unterstützung, meinen Dank für die Möglichkeit hier etwas zu Fragen habt Ihr jetzt schon :-)
Mit freundlichen Grüßen Petra

Zusätzliche Einschränkungen:
'Das RollUp Menü, was beim Betätigen der rechten Maustaste erscheint wird deaktiviert
.CommandBars("Toolbar List").Enabled = False
'Die Funktion "Anpassen" Im Menüpunkt "Extras" wird deaktiviert
.CommandBars("Worksheet Menu Bar"). _
Controls("Extras").Controls("Anpassen...").Enabled = False
'Die Funktion "Makro" Im Menüpunkt "Extras" wird deaktiviert
.CommandBars("Worksheet Menu Bar"). _
Controls("Extras").Controls("Makro").Enabled = False
'Die Funktion "Makro" Im Menüpunkt "Extras" wird deaktiviert
.CommandBars("Worksheet Menu Bar"). _
Controls("Datei").Controls("Speichern unter...").Enabled = False

'Tastenkombinationen deaktivieren
Application.OnKey "^x", ""
Application.OnKey "^c", ""
Application.OnKey "^v", ""
Application.OnKey "+{DEL}", ""
Application.OnKey "+{INSERT}", ""

'Drag & Drop ausschalten
Application.CellDragAndDrop = False

'Schaltflächen in Menüleiste => Bearbeiten deaktivieren
'Ausschneiden
procControlEnableDisable 21, False
'Kopieren
procControlEnableDisable 19, False
'Einfügen
procControlEnableDisable 22, False
'Inhalte einfügen
procControlEnableDisable 755, False
'Office-&Zwischenablage
procControlEnableDisable 809, False


Dialog-Beispiele