Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellschutz aufheben per Makro (VBA)

Zellschutz aufheben per Makro (VBA)
Ramon
Hi zusammen,
ich werde gleich wahnsinnig.
Ich habe ein Tabellenblatt, bei dem alle Zellen gesperrt sind. Nun möchte ich
einen Bereich markieren können und in diesem markierten Bereich alle leeren
Zellen per Knopdruck entsperren können.
Dazu habe ich das folgende simple Makro geschrieben:
Sub leere_entsperren()
Dim Zelle As Range
For Each Zelle In ActiveSheet.UsedRange
If Zelle.Value = "" Then Zelle.Locked = False
Next Zelle
End Sub
Aber, ich erhalte immer die Fehlermeldung "1004 - Die Locked-Eigenschaft des range-Objektes
kann nicht festgelegt werden."
Warum bloß? - Es gibt keine verbundenen Zellen und es besteht kein Blattschutz. Was mache
ich falsch?
Danke für Hilfe,
Gruß,
Ramon
Anzeige
AW: Zellschutz aufheben per Makro (VBA)
05.04.2011 16:25:46
Hajo_Zi
Hallo Ramon,
Du mußt auch den Blattschutz aufheben.
ActiveSheet.unprotect "Passwort"
und setzen
ActiveSheet.protect "Passwort"

AW: Zellschutz aufheben per Makro (VBA)
05.04.2011 16:33:02
Ramon
Hallo,
aber es besteht ja kein Blattschutz. Völlig ungeschützte Datei . . .
Gruß,
Ramon
Anzeige
AW: Zellschutz aufheben per Makro (VBA)
05.04.2011 16:35:34
Hajo_Zi
Hallo Raman,
ich habe nicts von Dateischutz geschrieben. Die Locked Eigenschaft wirkt erst , wenn die Tabelle geschützt ist.
Gruß Hajo
AW: Zellschutz aufheben per Makro (VBA)
05.04.2011 16:43:11
Ramon
Hallo Hajo,
leider immer noch nicht. Es kommt immer noch die gleiche
Fehlermeldung.
"Die Code-Sequenz "Zelle.Locked = Flase" wird gelb markiert.
Ich haber auf den entsprechenden Zellen Gültigkeitsregeln (Listen). Kann
es damit zusammenhängen?
Gruß,
Ramon
Anzeige
AW: Zellschutz aufheben per Makro (VBA)
05.04.2011 18:39:03
Hajo_Zi
Hallo Ramon,
kann ich mir nicht vorstellen. Vielleicht solltest Du Deine Datei hochladen?
Gruß Hajo
keine Probleme bei meinem Test ...
05.04.2011 16:46:31
Matthias
Hallo
In meiner Bsp.Datei sind alle Zellen im UsedRange geschützt
Das klappt ohne Probleme. Hab mal ne farbige Kontrolle mit drin
https://www.herber.de/bbs/user/74286.xls
Sonst lad Deine Datei hoch.
Gruß Matthias
Anzeige
AW: keine Probleme bei meinem Test ...
05.04.2011 16:52:33
Ramon
Hallo Matthias,
danke, da fällt mir jetzt aber ein entscheidender Unterschied auf. Ich möchte, dass er dies
NUR auf die von mir markierten Zellen anwendet, also zum Bsp O7:R400
In den ersten 6 Zeilen habe ich nämlich sehrwohl jede Menge verbundener Zellen, die das
Problem auslösen könnten. Ich dachte, dass ich mit Activesheet.UsedRange nur den aktuell
markierten Bereich anspreche.
Oder geht sowas wie Activesheet.Selection ?
Gruß,
Ramon
Anzeige
So: For Each Zelle In Selection oT
05.04.2011 16:57:08
Matthias
AW: So: For Each Zelle In Selection oT
05.04.2011 16:59:26
Ramon
Jawoll, mit "Each Zelle in Selection" geht's! Danke!
;

Forumthreads zu verwandten Themen

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

Zellschutz aufheben mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um den Zellschutz in Excel mithilfe von VBA aufzuheben, kannst du das folgende Makro verwenden. Dieses Beispiel zeigt, wie du alle leeren Zellen in einem markierten Bereich entsperrst.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (deineDatei.xlsx)" klickst und "Einfügen" > "Modul" wählst.
  3. Kopiere den folgenden Code in das Modul:
Sub leere_entsperren()
    Dim Zelle As Range
    ' Blattschutz aufheben
    ActiveSheet.Unprotect "Passwort" ' Passwort eingeben, falls erforderlich
    For Each Zelle In Selection
        If Zelle.Value = "" Then Zelle.Locked = False
    Next Zelle
    ' Blattschutz wieder aktivieren
    ActiveSheet.Protect "Passwort" ' Passwort eingeben, falls erforderlich
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Wähle den Bereich aus, in dem du die leeren Zellen entsperren möchtest.
  3. Drücke ALT + F8, wähle das Makro leere_entsperren aus und klicke auf "Ausführen".

Mit diesem Schritt kannst du den Excel Zellschutz aufheben und nur die leeren Zellen in dem markierten Bereich entsperren.


Häufige Fehler und Lösungen

  1. Fehlermeldung "1004 - Die Locked-Eigenschaft kann nicht festgelegt werden"

    • Stelle sicher, dass der Blattschutz aktiv ist. Wenn du die Locked-Eigenschaft ändern möchtest, muss das Blatt zuerst ungeschützt werden.
  2. Makro funktioniert nicht auf markierten Zellen

    • Überprüfe, ob du vor dem Ausführen des Makros den gewünschten Zellbereich selektiert hast. Nutze For Each Zelle In Selection anstelle von ActiveSheet.UsedRange.
  3. Gültigkeitsregeln verursachen Probleme

    • Gültigkeitsregeln können manchmal die Funktionsweise des Makros beeinflussen. Achte darauf, dass die Zellen im markierten Bereich keine komplexen Regeln haben.

Alternative Methoden

  • Manuelles Entsperren: Du kannst den Zellschutz auch manuell aufheben, indem du mit der rechten Maustaste auf die Zellen klickst, "Zellen formatieren" wählst und im Tab "Schutz" das Häkchen bei "Gesperrt" entfernst.
  • Excel-Blattschutz aufheben ohne Passwort: Wenn kein Passwort gesetzt ist, kannst du einfach mit einem Rechtsklick den Blattschutz aufheben, ohne VBA zu verwenden.

Praktische Beispiele

  • Beispiel 1: Um alle leeren Zellen in den Zellen O7:R400 zu entsperren, wähle diesen Bereich aus und führe das oben genannte Makro aus.
  • Beispiel 2: Wenn du spezifische Zellen mit Gültigkeitsregeln hast, könnte das Makro angepasst werden, um nur auf diese Zellen zu wirken.

Tipps für Profis

  • Speichere deine Datei regelmäßig, bevor du mit Makros arbeitest.
  • Teste deine Makros in einer Kopie deiner Datei, um Datenverlust zu vermeiden.
  • Nutze Kommentarzeilen im Code, um die Funktionalität deiner Makros besser zu dokumentieren.

FAQ: Häufige Fragen

1. Wie kann ich den Excel Blattschutz aufheben, ohne ein Passwort zu kennen? Wenn du das Passwort nicht kennst, gibt es keine legale Methode, um den Schutz aufzuheben. Eine Neuinstallation oder eine Sicherungskopie könnte in solchen Fällen hilfreich sein.

2. Was ist der Unterschied zwischen Zellschutz und Blattschutz in Excel? Der Zellschutz betrifft die einzelnen Zellen, während der Blattschutz das gesamte Blatt schützt, einschließlich Struktur und Formatierung. Um Excel Schreibschutz aufzuheben, musst du den Blattschutz deaktivieren.

3. Kann ich den Zellschutz aufheben, wenn ich Gültigkeitsregeln verwendet habe? Ja, du kannst den Zellschutz aufheben, aber sei vorsichtig, da Gültigkeitsregeln die Funktionsweise des Makros beeinflussen könnten.

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