Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Geschützte Zellen färben

Geschützte Zellen färben
20.03.2009 16:50:24
Sabine
Hallo zusammen,
gibt es eine Funktion, mit der man geschützte Zellen färben kann? Wenn nein, könnte mir jemand zeigen, wie man das mit VBA machen kann (wenn es denn geht)?
Vielen Dank!
LG
Sabine
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Geschützte Zellen färben
20.03.2009 17:08:04
Siggi
Hi,
geschützte zellen kannst du nur mit bedingter Formatierung färben, indem du entsprechende
Bedingungen hinterlegst.
Ansonsten nur, indem der schutz, z.B. durch einen Code, zeitweise aufgehoben wird.
Alternativ das Blatt mit dem Argument UserfInterfaceOnly schützen, dann gehts auch,
aber nur per VBA-Code.
mfg Siggi
Anzeige
AW: Geschützte Zellen färben
20.03.2009 17:27:07
Tino
Hallo,
Du könntest den Schutz mit VBA setzen und dabei den Parameter UserInterfaceOnly auf True setzen, jetzt kannst Du mit VBA Veränderungen auf Deiner Tabelle vornehmen.

Sub Makro_Bei_Schutz()
Worksheets("Tabelle1").Protect Password:="xxx", UserInterfaceOnly:=True
Range("A1:C10").Interior.ColorIndex = 3
End Sub


Diese Eigenschaft muss bei jedem öffnen neu gesetzt werden,
bevor ein Makro Änderungen durchführen darf.
Gruß Tino

Anzeige
@Siggi, sollte bei Sabine landen. sorry oT.
20.03.2009 17:29:12
Tino
AW: @Siggi, sollte bei Sabine landen. sorry oT.
20.03.2009 17:39:44
Sabine
Hallo Tino,
das verstehe ich nicht. Vielleicht liegt es aber auch daran, dass ich mich falsch ausgedrückt habe.
Ich habe eine Tabelle mit Schutz mit folgenden Regeln: Gesperrte und nicht gesperrte Zellen dürfen ausgewählt werden.
Jetzt sind in der Tabelle ca. 50 Zellen gechützt. Bei einigen Zellen hat man sich allerdings in der Zelle vertan (z.B. statt A3 wurde D3 genommen). Damit ich mir einen Überblick verschaffen kann, welche Zellen vor der Eingabe geschützt sind, wäre es gut, wenn man die geschützten Zellen rot markieren könnte. Oder die nicht geschützten.
Ich muss halt verhindern, dass in einer versehentlich nicht geschützten Zelle eine Eingabe erfolgt.
Nochmals danke für die Aufmerksamkeit und Mühe.
LG
Sabine
Anzeige
AW: @Siggi, sollte bei Sabine landen. sorry oT.
20.03.2009 18:05:52
Tino
Hallo,
dieser Code färbt alle nicht geschützten Zellen auf der aktiven Tabelle rot.
Sub Test()
Dim rngSchutz As Range, Bereich As Range

With ActiveSheet
    For Each Bereich In .UsedRange
        If Not Bereich.Locked Then
            If rngSchutz Is Nothing Then
                Set rngSchutz = Bereich
            Else
                Set rngSchutz = Union(Bereich, rngSchutz)
            End If
        End If
    Next Bereich
    
     .Protect "xxx", True, True, , True
     .UsedRange.Interior.ColorIndex = xlColorIndexNone
    
    If Not rngSchutz Is Nothing Then
        rngSchutz.Interior.ColorIndex = 3
    End If
End With

End Sub


Gruß Tino

Anzeige
AW: @Siggi, sollte bei Sabine landen. sorry oT.
20.03.2009 18:52:02
Sabine
Hallo Tino,
genau das brauchte ich. Super, herzlichen Dank und schönes Wochenende
LG
Sabine
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Geschützte Zellen färben in Excel


Schritt-für-Schritt-Anleitung

Um geschützte Zellen in Excel zu färben, kannst du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)", wähle "Einfügen" und dann "Modul".
  3. Füge den folgenden Code ein:

    Sub GeschuetzteZellenFaerben()
       Dim rngSchutz As Range, Bereich As Range
    
       With ActiveSheet
           For Each Bereich In .UsedRange
               If Bereich.Locked Then
                   If rngSchutz Is Nothing Then
                       Set rngSchutz = Bereich
                   Else
                       Set rngSchutz = Union(Bereich, rngSchutz)
                   End If
               End If
           Next Bereich
    
           .UsedRange.Interior.ColorIndex = xlColorIndexNone
    
           If Not rngSchutz Is Nothing Then
               rngSchutz.Interior.ColorIndex = 3 ' Rot
           End If
       End With
    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 GeschuetzteZellenFaerben und klicke auf "Ausführen".

Häufige Fehler und Lösungen

  • Makro funktioniert nicht: Stelle sicher, dass die Excel-Datei im .xlsm-Format gespeichert ist, um Makros zu ermöglichen.
  • Keine Zellen gefärbt: Überprüfe, ob die Zellen tatsächlich geschützt sind. Wenn der Schutz nicht aktiv ist, wird der Code keine Zellen färben.
  • Falsche Zellen gefärbt: Achte darauf, dass du im richtigen Arbeitsblatt arbeitest. Der Code bezieht sich auf ActiveSheet.

Alternative Methoden

Wenn du keine VBA-Lösungen nutzen möchtest, kannst du auch die bedingte Formatierung verwenden. Setze die Bedingungen so, dass sie auf die geschützten Zellen zutreffen. Beachte, dass dies nicht zu 100% effektiv ist, da geschützte Zellen nicht direkt gefärbt werden können, solange der Schutz aktiv ist.


Praktische Beispiele

Hier sind zwei praktische Beispiele für das Färben geschützter und nicht geschützter Zellen:

  1. Färben geschützter Zellen: Verwende den vorher genannten VBA-Code, um alle geschützten Zellen in einer Tabelle rot zu markieren.

  2. Färben nicht geschützter Zellen: Verwende den folgenden Code, um nicht geschützte Zellen zu färben:

    Sub NichtGeschuetzteZellenFaerben()
       Dim rngNichtSchutz As Range, Bereich As Range
    
       With ActiveSheet
           For Each Bereich In .UsedRange
               If Not Bereich.Locked Then
                   If rngNichtSchutz Is Nothing Then
                       Set rngNichtSchutz = Bereich
                   Else
                       Set rngNichtSchutz = Union(Bereich, rngNichtSchutz)
                   End If
               End If
           Next Bereich
    
           .UsedRange.Interior.ColorIndex = xlColorIndexNone
    
           If Not rngNichtSchutz Is Nothing Then
               rngNichtSchutz.Interior.ColorIndex = 6 ' Gelb
           End If
       End With
    End Sub

Tipps für Profis

  • UserInterfaceOnly: Wenn du den Blattschutz mit UserInterfaceOnly auf True setzt, kannst du weiterhin mit VBA Änderungen vornehmen, ohne den Schutz aufzuheben. Vergiss nicht, dies bei jedem Öffnen der Datei erneut zu setzen.
  • Automatisierung: Du kannst das Makro beim Öffnen der Datei automatisch ausführen lassen, indem du es im Workbook_Open-Ereignis platzierst.

FAQ: Häufige Fragen

1. Kann ich geschützte Zellen ohne VBA färben? Es ist nicht möglich, geschützte Zellen direkt ohne VBA zu färben. Du kannst jedoch die bedingte Formatierung nutzen, um visuelle Hinweise zu erstellen.

2. Welche Excel-Version benötige ich? Die VBA-Codes können in Excel 2010 und späteren Versionen verwendet werden. Stelle sicher, dass Makros in deinen Excel-Einstellungen aktiviert sind.

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