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

Zellen aus VBA heraus sperren

Forumthread: Zellen aus VBA heraus sperren

Zellen aus VBA heraus sperren
29.09.2003 09:19:18
Sven
Hallo Leutz

Bräuchte mal hilfe

Kann ich aus VBA herraus die anweisung geben, die zelle sperren und die entsperren? Denn wenn A gegeben ist , darf nur in B geschrieben werden und C muß leer bleiben und das selbe umgekehrt,wenn A nicht gegeben ist.

Danke für eure Hilfe

Gruß Sven
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen aus VBA heraus sperren
29.09.2003 09:23:26
Christian Winkelmann
Hallo Sven,

brauchst Du dafür wirklich VBA, oder reicht evtl. auch die Gültigkeitsprüfung (Daten -> Gültigkeit)?

Mit ein paar Formel lässt sich Dein Problem wahrscheinlich auch so lösen.

Gruß Christian
AW: Zellen aus VBA heraus sperren
29.09.2003 09:37:31
Sven
Wollte VBA nutzen weil die Daten sowieso schon aus einer Userform eingetragen werden und ich das gleich einflechten wollte und auch gleichzeitig in die bevor die Zelle gesperrt wird, ein Formel zur berechnung eingetragen werden sollte.
Gibt es denn eine anweisung wie isch sagen kann sperre die Zelle. Das wollt ich eigentlich nur wissen und wie der heißt. Hab hier nur ne englische Hilfe und daher wird das selbst suchen schwer *g*

Gruß
Sven
Anzeige
AW: Zellen aus VBA heraus sperren
29.09.2003 09:43:24
Nicolaus
Hallo,
du kannst dein Problem mit der "locked" Eigenschaft lösen.

sperren:

Worksheets(1).Range("a1").Select
Selection.Locked = True

entsperren

Worksheets(1).Range("a1").Select
Selection.Locked = False
AW: Zellen aus VBA heraus sperren
29.09.2003 09:59:38
Sven
alles klar danke,mehr brauch ich nicht.
Nur bekomm ich jetzt einen Fehler wenn ich eine Formel in eine Zelle schreiben über VBA schreiben will. Applikation Defined or objekt defined error.
der Code sieht so aus:
Worksheets("Berechnungen").Range("h" & Count) = "=i$/c$"
Anzeige
AW: Zellen aus VBA heraus sperren
29.09.2003 09:59:43
Sven
alles klar danke,mehr brauch ich nicht.
Nur bekomm ich jetzt einen Fehler wenn ich eine Formel in eine Zelle schreiben über VBA schreiben will. Applikation Defined or objekt defined error.
der Code sieht so aus:
Worksheets("Berechnungen").Range("h" & Count) = "=i$/c$"
AW: Zellen aus VBA heraus sperren
29.09.2003 10:10:33
Sven
Ok hab das prob gelöst mit der Formel,doch hängt er sich jetzt an der anweisung auf:
Worksheets("Berechnungen").Range("h" & Count).Select
Selection.Locked = True
bekomm ein Select Method of range class failed
Was das denn jetzt?
Anzeige
AW: Zellen aus VBA heraus sperren
29.09.2003 14:18:13
Nicolaus
Hallo,
dein Problem scheint in der Verwendung des Worksheets Objektes in Kombination mit dem Versuch eine Rangeangabe zu berechnen zu liegen.
Hier mein Vorschlag:
Benutze das Sheets Objekt und die Cells Eigenschaft


Sub Sperren()
zeile = 3 'hier müsste deine Berechnung für die Zeilennummer der zu bearbeitenden Zelle stehen
Sheets("berechnungen").Cells(8, zeile).Select
Selection.Locked = True
End Sub

Anzeige
AW: Zellen aus VBA heraus sperren
29.09.2003 10:37:59
Sven
Also ich bekomm hier fehlermeldungen mit der anweisunf .select und selection.Locked = true

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

Infobox / Tutorial

Zellen in Excel mit VBA sperren


Schritt-für-Schritt-Anleitung

Um Zellen in Excel über VBA zu sperren, kannst du die Locked-Eigenschaft nutzen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic for Applications (VBA) Editor. Das kannst du tun, indem du ALT + F11 drückst.
  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf „VBAProject (deine Datei)“ klickst und „Einfügen > Modul“ wählst.
  3. Schreibe den folgenden Code in das Modul:

    Sub Sperren()
       Dim zeile As Integer
       zeile = 3 ' Hier kannst du die Zeilennummer anpassen 
       Sheets("Berechnungen").Cells(zeile, 1).Locked = True ' Zelle A3 sperren
    End Sub
  4. Um die Zelle zu entsperren, kannst du einen ähnlichen Code verwenden:

    Sub Entsperren()
       Dim zeile As Integer
       zeile = 3 ' Hier kannst du die Zeilennummer anpassen
       Sheets("Berechnungen").Cells(zeile, 1).Locked = False ' Zelle A3 entsperren
    End Sub
  5. Führe die Subs aus, um die Zelle zu sperren oder zu entsperren.

Häufige Fehler und Lösungen

  1. Fehler: „Select Method of Range Class Failed“

    • Ursache: Dies kann auftreten, wenn du versuchst, eine Zelle zu wählen, die nicht existiert oder nicht sichtbar ist.
    • Lösung: Stelle sicher, dass die angegebene Zeile und Spalte innerhalb des Bereichs des Arbeitsblatts liegen.
  2. Fehler: „Application-defined or object-defined error“

    • Ursache: Dies kann passieren, wenn du versuchst, eine Formel in eine gesperrte Zelle zu schreiben.
    • Lösung: Entsperre die Zelle, bevor du eine Formel einfügst, oder setze den Blattschutz auf, um die Zelle zu schützen.

Alternative Methoden

Wenn du Excel-Zellen sperren möchtest, ohne VBA zu verwenden, kannst du auch die Datenvalidierung nutzen. Dabei kannst du Regeln aufstellen, die verhindern, dass in bestimmte Zellen geschrieben wird. Dies ist besonders nützlich, wenn du keine Programmierung benötigst.

  1. Wähle die Zelle aus, die du sperren möchtest.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Stelle die Bedingungen ein, und wähle „Benutzerdefiniert“ aus, um spezifische Regeln zu definieren.

Praktische Beispiele

Hier sind einige Beispiele, wie du Excel-Zellen sperren kannst, wenn bestimmte Bedingungen erfüllt sind:

Sub BedingtesSperren()
    If Range("A1").Value = "" Then
        Range("B1").Locked = True
        Range("C1").Locked = False
    Else
        Range("B1").Locked = False
        Range("C1").Locked = True
    End If
End Sub

In diesem Beispiel wird die Zelle B1 gesperrt, wenn A1 leer ist, und umgekehrt.


Tipps für Profis

  • Verwende die Worksheet_Change-Ereignisprozedur, um Zellen dynamisch zu sperren oder zu entsperren, wenn sich die Werte ändern.
  • Überlege, die Blattschutz-Funktion zu integrieren, um sicherzustellen, dass die gesperrten Zellen nicht bearbeitet werden können.
  • Teste deinen Code regelmäßig, um sicherzustellen, dass er in verschiedenen Szenarien funktioniert.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Zellen auf einmal sperren?
Du kannst mehrere Zellen sperren, indem du einen Bereich angibst:

Sheets("Berechnungen").Range("A1:C3").Locked = True

2. Wie kann ich sicherstellen, dass die Zellen nur unter bestimmten Bedingungen gesperrt werden?
Verwende die If-Bedingung, um die Sperrlogik abhängig von den Zellwerten zu gestalten.

3. Muss ich das Arbeitsblatt schützen, um die gesperrten Zellen zu schützen?
Ja, um tatsächlich zu verhindern, dass Nutzer in gesperrte Zellen schreiben, musst du den Blattschutz aktivieren. Dies kannst du mit ActiveSheet.Protect tun.

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