Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1556to1560
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

VBA Zellschutz für graue Zellen

VBA Zellschutz für graue Zellen
03.05.2017 14:02:51
Michelle
Hallo liebes Forum,
ich hoffe auf Eure Hilfe bzgl. eines Makrocodes.
Ich arbeite mit bedingten Formatierungen - z. B. dass alle Daten in der Vergangenheit grau hinterlegt sind. Diese "grauen" Zellen sollen nun schreibgeschützt werden.
Mir wird immer eine Kalenderwoche angezeigt, in Zelle B6 Kann ich die Kalenderwoche auswählen. Daraufhin ändert sich die Farbe in B14 bis z20. Nachdem ich also eine Kalenderwoche eingetragen habe, hätte ich gerne, dass die grauen Zellen schreibgeschützt werden.
Ich habe eine Beispieldatei angehängt und habe auch schon einen Versuch per VBA gestartet, was aber nicht zielführend war. Mein Code:
Private Sub cmdProtectSheet_Click()
Dim zelle As Range
Range("b14:u14").Select
For Each zelle In Selection
If zelle.Interior.ColorIndex = 15 Then zelle.Locked = True
'15=hellgrau/ 16=dunkelgrau/ 6 =gelb/ 19 = hellgelb
'Zelle.Locked = IIf(Zelle.Interior.ColorIndex = 15, True, False)
'Zelle.Locked = IIf(Zelle.Interior.ColorIndex = 6, True, False)
'15=hellgrau/ 16=dunkelgrau/ 6 =gelb/ 19 = hellgelb
Next zelle
ActiveSheet.Protect PASSWORD:="1234", DrawingObjects:=True, Contents:=True, UserInterfaceOnly:=  _
_
True, Scenarios:=True
End Sub
Kann mir jemand helfen? Wäre euch suuuper dankbar.
Viele Grüße
Michelle
Datei:
https://www.herber.de/bbs/user/113277.xlsm

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zellschutz für graue Zellen
03.05.2017 14:50:05
ChrisL
Hi Michelle
Die bedingte Formatierung hat keinen verwertbaren ColorIndex. Man muss die Bedingung abfragen.
Da die Bedingung in deinem Fall aber auf eine weitere Formel zurück greift (Datum kleiner-gleich heute), kann auch direkt auf dieses Kriterium zugegriffen werden.
Und da sich das Datum (HEUTE) nur einmal am Tag ändert :) und ich davon ausgehe, dass die Datei nachts geschlossen wird, würde es reichen beim Öffnen der Datei zu prüfen.
Alt + F11, links Doppelklick auf DieseArbeitsmappe, Code einfügen. Zur Aktualisierung einmal Datei auf und zu.
Private Sub Workbook_Open()
Dim i As Long
With Worksheets("Graue Zellen geschützt")
.Unprotect
For i = 2 To .Cells(11, Columns.Count).End(xlToLeft).Column Step 5
If .Cells(11, i) 
cu
Chris
Anzeige
AW: VBA Zellschutz für graue Zellen
03.05.2017 16:58:25
Michelle
Lieber Chris,
ersteinmal WOW, so etwas funktioniert ja wirklich. Klappt super! Danke schonmal :)
Ich hätte noch drei Wünsche, evtl. gibt es dafür auch eine Funktion... :)
Ist es für die Graufärbung möglich, nicht nur über das Datum zu gehen? Momentan ist es so korrekt, da das Datum mein einziger Paramter ist. Allerdings will ich noch 2 bis 3 Attribute für die Prüfung "erledigt" hinzufügen per Formel. Ist es möglich, durch VBA das "erledigt" zu suchen und die darauffolgenden 3 Zellen grau zu färben? Z. B. finde ich in B14 das "erledigt" und färbe deshalb B14 bis E14 grau.
Außerdem wäre es cool, wenn sich die Graufärbung und damit der Blattschutz ändert, wenn ich in B6 eine neue KW eingebe. Wenn ich nämlich z. B. in die Zukunft schauen will und etwas eintragen möchte, könnte da der Blattschutz noch drauf sein von meinen alten (in der Vergangenheit liegenden) Daten.
Und zu guter Letzt: Kann ich nicht nur das Blatt schützen, sondern den Schutz auch mit einem Passwort hinterlegen?
Vielen Dank für Deine Hilfe!!
Viele Grüße
Michelle
Anzeige
AW: VBA Zellschutz für graue Zellen
03.05.2017 17:06:39
ChrisL
Hi Michelle
Geht schon, aber kannst du noch einmal eine definitive Beispieldatei laden. Weil man muss genau wissen wo die Attribute sind, welche das Formel-Ergebnis beeinflussen.
cu
Chris
AW: VBA Zellschutz für graue Zellen
03.05.2017 17:45:48
Daniel
Hi
probier mal diesen Code.
der Code sucht alle Zellen, in denen "Erledig" steht und aktiviert für diese Zellen und die drei rechten Nachbarzellen den Blattschutz.
Gefärbt wird auch gleich, so dass du auf die Bedingte Formatierung verzichten kannst.
Sub BlattSchützen()
Dim Bereich As Range
ActiveSheet.Unprotect "DeinPasswort"
Cells.Locked = False
Cells.SpecialCells(xlCellTypeFormulas).Replace """erledigt""", "True", xlPart
For Each Bereich In Cells.SpecialCells(xlCellTypeFormulas, 4).Areas
With Bereich.Resize(, 4)
.Locked = True
.Interior.ColorIndex = 15
End with
Next
Cells.SpecialCells(xlCellTypeFormulas).Replace "True", """erledigt""", xlPart
ActiveSheet.Protect "DeinPasswort"
End Sub
zum auffinden der betroffenen Zellen wird das Formelergebnis "erledigt" durch den Wahrheitswert WAHR ersetzt. Mit diesem Trick kannst du die betroffenen Zellen schnell und einfach über das SpecialCells (entspricht dem Suchen und Auswählen - Inhalte) selektieren.
Gruß Daniel
Anzeige
AW: VBA Zellschutz für graue Zellen
04.05.2017 15:24:19
Michelle
....Vielen Dank auch an Dich Daniel! Jetzt habe ich es so, wie ich es mir vorgestellt habe. Juhuu :)
Vielen Dank!!!! :-)
Viele Grüße
Michelle

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige