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

per VBA bestimmte Zellen schreibgeschützt machen

Forumthread: per VBA bestimmte Zellen schreibgeschützt machen

per VBA bestimmte Zellen schreibgeschützt machen
06.03.2015 10:20:31
Anton
Hallo zusammen!
Folgendes:
In Spalte A steht ein "Key" - X6,X5,X4,X3 beschreiben verschiedene Ebenen.
Jedoch sollen alle Zeilen, in denen ein X6,X5,X4,X3 steht, schreibgeschützt sein. Weder bearbeiten noch löschen soll funktionieren.
In den Zellen, in denen nun "AS" steht, kann auch etwas anderes stehen. Diese sollen jedoch alle NICHT schreibgeschützt sein.
Das Dokument selbst soll ohne Passwort zu öffnen sein.
Beispiel dazu:
https://www.herber.de/bbs/user/96192.xlsx
Ich dachte daran, das Pferd von hinten aufzuzäumen: Alles protecten, danach alles ausser X6/X5/X4/X3 Zeilen unprotecten.
Hat da jemand eine VBA Lösung?
Will das ganze in ein großes Makro integrieren, komme aber nicht auf die richtigen Formeln :/
Mit freundlichen Grüßen,
Anton Huber

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zeilen ohne Markierung entsperren
06.03.2015 10:54:40
Klexy
Wenn links in Spalte A kein X steht, werden die verbundenen Zellen (ab Spalte B) gewählt und alle Zellen aller Zeilen, über die sich die verbundenen Zellen erstrecken, entsperrt.

Sub Schreibschutz_auf_XZeilen()
ActiveSheet.Unprotect "Bla" 'hier dein Passwort eingeben
Cells.Locked = True 'alle Zellen sperren
Cells.FormulaHidden = True
Range("A1").Select
Do While ActiveCell.Row  "X" Then ' wenn kein X links in Spalte A
ActiveCell.Offset(0, 1).Select
Selection.EntireRow.Locked = False ' entsperrt
Selection.EntireRow.FormulaHidden = False ' entsperrt
ActiveCell.Offset(1, -1).Activate
Else
ActiveCell.Offset(1, 0).Activate
End If
Loop
ActiveSheet.Protect "Bla" 'hier wieder dein Passwort. Am Ende wird das Blatt wieder geschützt
End Sub

Anzeige
AW: Zeilen ohne Markierung entsperren
06.03.2015 11:06:39
Anton
Vielen Dank, funktioniert einwandfrei.
Kann man evtl. noch eine kleine Msg Box integrieren, in der ich das Passwort festsetzen kann?
Es sind verschiedene Dateien und verschiedene Personen die dieses bearbeiten und ich würde ihnen gerne eine MsgBox bieten, in der sie ihr Passwort festlegen können.
MfG,
Anton Huber

Anzeige
AW: Zeilen ohne Markierung entsperren GELÖST
06.03.2015 11:21:19
Anton
hat sich geklärt, habs selbst geschafft! Bin anscheinend doch kein so VBA Anfänger mehr, wie ich mal dachte :-)
Danke für deine HIlfe!
Schönen tag wünsche ich.
MfG,
Anton Huber

AW: Zeilen ohne Markierung entsperren GELÖST
06.03.2015 14:32:11
Klexy
Sieht es so aus?

Sub Schreibschutz_auf_XZeilen()
Dim Passwort As Variant
Passwort = InputBox(Chr(13) & Chr(13) & "Bitte Passwort eingeben:" & Chr(13) & "", " _
Passwort")
On Error GoTo FalschesPW
ActiveSheet.Unprotect Passwort 'hier dein Passwort eingeben
GoTo RichtigesPW
FalschesPW:
MsgBox "Falsches Passwort"
Exit Sub
RichtigesPW:
'erst werden alle Zellen gesperrt
Cells.Locked = True
Cells.FormulaHidden = True
Range("A1").Select
Do While ActiveCell.Row  "X" Then ' wenn kein X links in Spalte A
ActiveCell.Offset(0, 1).Select
Selection.EntireRow.Locked = False ' entsperrt
Selection.EntireRow.FormulaHidden = False ' entsperrt
ActiveCell.Offset(1, -1).Activate
Else
ActiveCell.Offset(1, 0).Activate
End If
Loop
ActiveSheet.Protect Passwort 'hier wieder dein Passwort. Am Ende wird das Blatt wieder geschü _
tzt
End Sub

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bestimmte Zellen in Excel per VBA schreibgeschützt machen


Schritt-für-Schritt-Anleitung

Um bestimmte Zellen in Excel schreibgeschützt zu machen, kannst Du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne die Excel-Datei, die Du schützen möchtest.
  2. Drücke Alt + F11, um den VBA-Editor zu öffnen.
  3. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  4. Füge den folgenden VBA-Code ein:
Sub Schreibschutz_auf_XZeilen()
    Dim Passwort As Variant
    Passwort = InputBox("Bitte Passwort eingeben:", "Passwort")
    On Error GoTo FalschesPW
    ActiveSheet.Unprotect Passwort
    GoTo RichtigesPW
FalschesPW:
    MsgBox "Falsches Passwort"
    Exit Sub
RichtigesPW:
    Cells.Locked = True ' Alle Zellen sperren
    Cells.FormulaHidden = True
    Range("A1").Select
    Do While ActiveCell.Row < ActiveSheet.UsedRange.Rows.Count ' Solange es Zeilen gibt
        If ActiveCell.Value <> "X6" And ActiveCell.Value <> "X5" And ActiveCell.Value <> "X4" And ActiveCell.Value <> "X3" Then
            Selection.EntireRow.Locked = False ' Entsperren der Zeile
            Selection.EntireRow.FormulaHidden = False
        End If
        ActiveCell.Offset(1, 0).Activate ' Nächste Zeile auswählen
    Loop
    ActiveSheet.Protect Passwort ' Arbeitsblatt wieder schützen
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus, indem Du auf Entwicklertools und dann auf Makros klickst.

Häufige Fehler und Lösungen

  • Falsches Passwort: Wenn Du ein falsches Passwort eingibst, zeigt die MsgBox eine Fehlermeldung an. Überprüfe das eingegebene Passwort und versuche es erneut.
  • Zellen werden nicht entsperrt: Stelle sicher, dass die Zellen, die Du entsperren möchtest, tatsächlich die Kriterien erfüllen (keine X-Werte in Spalte A).

Alternative Methoden

Falls Du kein VBA nutzen möchtest, kannst Du auch die integrierten Schutzfunktionen von Excel verwenden:

  1. Wähle die Zellen aus, die Du schreibgeschützt machen möchtest.
  2. Rechtsklick und wähle Zellen formatieren.
  3. Gehe zum Tab Schutz und aktiviere Gesperrt.
  4. Schütze das Arbeitsblatt über Überprüfen > Blatt schützen.

Diese Methode bietet weniger Flexibilität, aber sie ist einfach zu handhaben.


Praktische Beispiele

Hier ist ein Beispiel für die Anwendung des VBA-Codes:

  • Du hast eine Excel-Tabelle mit verschiedenen Daten in Spalte A. Wenn in einer der Zellen in Spalte A X6, X5, X4 oder X3 steht, wird die gesamte Zeile schreibgeschützt. Alle anderen Zeilen sind bearbeitbar.

Tipps für Profis

  • Experimentiere mit verschiedenen Bedingungen im VBA-Code, um gezielt Zellen oder Zeilen zu schützen.
  • Nutze die Möglichkeit, die Passworteingabe flexibel zu gestalten, indem Du eine InputBox verwendest, wie im Beispiel gezeigt.
  • Wenn Du regelmäßig mit schreibgeschützten Excel-Tabellen arbeitest, speichere Deine Makros in der Personal.xlsb-Datei, um sie in jeder Arbeitsmappe verfügbar zu haben.

FAQ: Häufige Fragen

1. Wie kann ich den Schreibschutz aufheben? Um den Schreibschutz aufzuheben, führe das Makro erneut aus und gib das korrekte Passwort ein.

2. Gibt es eine Möglichkeit, bestimmte Zellen immer schreibgeschützt zu machen? Ja, Du kannst die Zellen beim Erstellen der Tabelle so formatieren, dass sie immer gesperrt sind, und den Schutz dann aktivieren, wann immer es nötig ist.

3. Funktioniert dieser VBA-Code in allen Excel-Versionen? Ja, der Code sollte in den meisten modernen Excel-Versionen funktionieren, einschließlich Excel 2013, 2016 und 2019.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige