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

Forumthread: mit VBA Zellen sperren

mit VBA Zellen sperren
Wolfango
Hallo Experten,
folgender Wunsch:
Gibt es einen VBA-Code der in einer geschützten Arbeitsmappe beim speichern der Datei betimmte Zellen (C8:F17) gesperrt formatiert?
Der Reihe nach:
Beim Speichern:
1. Blattschutz aufheben (mit Kennwort)
2. C8:F17 als gesperrte Zellen formatieren
3. Blattschutz wieder aktivieren (mit Kennwort)
Danke!
Gruß,
Wo.
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: mit VBA Zellen sperren
16.06.2011 16:26:03
Rudi
Hallo,
in DieseArbeitsmappe:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Sheets(1)
.Unprotect "Passwort"
.Range("C8:F17").Locked = True
.Protect "Passwort"
End With
End Sub

Gruß
Rudi
AW: mit VBA Zellen sperren
16.06.2011 17:46:42
Wolfango
Danke! Genau das wollte ich! Funktioniert!
Falls es Missverständlich war:
Der Bereich C8:F17 ist in der Ausgangssituatin 'nicht gesperrt' formatiert (Format,, Zellen, Schutz, kein Häkchen bei gesperrt); sonst würde es in der Tat keinen Sinn machen.
Danke nochmal!
Anzeige
was macht das für einen Sinn ?
16.06.2011 16:38:12
Matthias
Hallo
Zitat:
Beim Speichern:
1. Blattschutz aufheben (mit Kennwort)
2. C8:F17 als gesperrte Zellen formatieren
3. Blattschutz wieder aktivieren (mit Kennwort)

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveSheet.UnProtect "000"
Range("C8:F17").Locked = True
ActiveSheet.Protect "000"
End Sub
PW hinter UnProtect/Protect ist optional (hier 000)
Aber eigentlich...
... sind Die Zellen doch dann schon gesperrt beim Öffnen !
Mir bleibt der Sinn der Aktion leider verborgen.
Userbild
Anzeige
..als Mitleser...
16.06.2011 16:43:26
robert
Hi,
da er von formatieren schreibt,
meint er etwa 'g e s p e r r t e Z e l l e n'
und nicht gesperrte Zellen ?
Gruß
robert
Dann bist Du ein Hellseher ;o)
16.06.2011 17:18:53
Matthias
Hallo robert
meint er etwa 'g e s p e r r t e Z e l l e n'
und nicht gesperrte Zellen
Wo ist da der Unterschied ?


Hätte er geschrieben:
Ich möchte den Bereich C8:F17 z.B beim Speichern gelb formatieren.
Die Zellen sind jedoch gesperrt und der Blattschutz ist gesetzt ...
... dann könnte sogar ich das nachvollziehen.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Tabelle1
.Unprotect "000"
With .Range("C8:F17")
.Locked = True
.Interior.ColorIndex = 6
End With
.Protect "000"
End With
End Sub
Aber Hellsehen ist nicht so mein Ding
Vielleicht will er ja auch alle Zellen in diesem Bereich die gesperrt sind, farblich kennzeichnen
(es könnte also sein das Du das meintest - Die Glaskugel hat gaaaaaanz leise "Hallo" gerufen)
Wer weiß das schon.
Die Qualität / Korrektheit der Fragen lässt leider immer mehr nach!
Aber wahrscheinlich hattest Du den richtigen Riecher ;o)
Userbild
Anzeige
..keine Hellseherqualitäten...
16.06.2011 18:58:59
robert
Hallo Matthias,
ich lag total daneben, aber es lag auch daran-wobei Du Recht hast ;-)
Die Qualität / Korrektheit der Fragen lässt leider immer mehr nach!
Gruß
robert
AW: ..keine Hellseherqualitäten...
17.06.2011 15:35:39
Wolfango
....aaaalso nochmals sorry, falls ich zu unkonkret war......ich hätte erwähnen sollen, dass die besagten Zellen in der Ausgangssituation bereits 'entsperrt' waren.....aaaaaber das 'Sperren/Entsperren' ist und bleibt ein Formatierungsbefehl (...aus der Struktur der Befehlslogik betrachtet).
Wie auch immer....werde versuchen beim nächsten mal präziser zu Fragen.
Vielen Dank an dieses Forum und all jene die hier schnell und auskunftswillig Hilfe leisten!!
Gruß,
Wo .
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA für das Sperren von Zellen in Excel


Schritt-für-Schritt-Anleitung

Um Zellen in Excel mit VBA zu sperren, kannst Du den folgenden VBA-Code verwenden. Dieser Code hebt den Blattschutz auf, sperrt die Zellen im Bereich C8:F17 und aktiviert den Blattschutz anschließend wieder.

  1. Öffne Deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge den folgenden Code in das DieseArbeitsmappe-Modul ein:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    With Sheets(1)
        .Unprotect "Passwort" ' Passwort hier einfügen
        .Range("C8:F17").Locked = True
        .Protect "Passwort" ' Passwort hier einfügen
    End With
End Sub
  1. Ersetze "Passwort" mit Deinem tatsächlichen Passwort zum Schützen des Blattes.
  2. Schließe den VBA-Editor und speichere die Datei als Makro-aktivierte Arbeitsmappe (*.xlsm).

Häufige Fehler und Lösungen

  • Problem: Excel Zellen sperren funktioniert nicht.

    • Lösung: Stelle sicher, dass der Blattschutz aktiv ist, bevor Du versuchst, Zellen zu sperren. Überprüfe auch, dass die Zellen zu Beginn nicht bereits gesperrt sind.
  • Problem: Zellen sind nach dem Speichern nicht gesperrt.

    • Lösung: Überprüfe, ob das Passwort korrekt eingegeben wurde und ob der Code im richtigen Modul ist.

Alternative Methoden

Es gibt auch Wege, Zellen ohne Blattschutz zu sperren:

  • Mit Excel VBA Zellen sperren ohne Blattschutz:
Sub LockCellsWithoutProtection()
    With Sheets(1)
        .Range("C8:F17").Locked = True
    End With
End Sub

Diese Methode schützt die Zellen nur vor Änderungen durch VBA, nicht durch Benutzerinteraktionen.


Praktische Beispiele

  • Beispiel für das Sperren einzelner Zellen mit Passwort:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    With Sheets(1)
        .Unprotect "DeinPasswort"
        .Range("A1").Locked = True
        .Protect "DeinPasswort"
    End With
End Sub
  • Beispiel für das Formatieren gesperrter Zellen:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    With Sheets(1)
        .Unprotect "DeinPasswort"
        With .Range("C8:F17")
            .Locked = True
            .Interior.ColorIndex = 6 ' Gelbe Hintergrundfarbe
        End With
        .Protect "DeinPasswort"
    End With
End Sub

Tipps für Profis

  • Verwende Excel VBA um Zellen zu sperren und gleichzeitig deren Formatierungen anzupassen. So kannst Du eine visuelle Rückmeldung geben, welche Zellen nicht bearbeitet werden dürfen.
  • Teste den Code immer in einer Kopie Deiner Arbeitsmappe, um Datenverlust zu vermeiden.
  • Halte alle Passwörter sicher und dokumentiere, wo sie verwendet werden, um späteren Problemen vorzubeugen.

FAQ: Häufige Fragen

1. Wie kann ich Excel einzelne Zellen sperren ohne Blattschutz?
Du kannst den Code verwenden, der die Zellen einfach auf Locked = True setzt, ohne den Blattschutz zu aktivieren.

2. Funktioniert das Sperren von Zellen auch in Excel Online?
VBA wird in Excel Online nicht unterstützt. Du musst die Desktop-Version verwenden, um VBA-Skripte auszuführen.

3. Was passiert, wenn ich das Passwort vergesse?
Wenn Du das Passwort vergisst, kannst Du den Blattschutz nicht aufheben. Es gibt jedoch Tools von Drittanbietern, die helfen können, das Passwort wiederherzustellen, aber dies kann riskant sein und ist nicht immer erfolgreich.

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