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

Forumthread: Zellen ab ein bestimmtes Datum sperren

Zellen ab ein bestimmtes Datum sperren
Peter
Hallo alle zusammen,
ich beschäftige mich mit einer Problematik, mit der ich nicht mehr weiter weiß.
Es geht um eine Arbeitsmappe mit 2 Tabellen, in der Arbeits-Tabelle gibt es mehrere
Projektbereiche. Diese sind jeweils nach Monaten unterteilt.
Aufgabenstellung ist das nur in den jeweiligen Monat (eventl. +5 Karenztage) Eingaben
erfolgen dürfen, ist das Datum überschritten sollen diese Zellen gesperrt werden und ggfs.
nur mit Aufhebung des Blattschutzes nochmals bearbeitet werden können.
Bsp: 07.12.2009 = keine Eingaben in Spalte C-D-E-G für die Vormonate, nur für akt. Monat.
Beispiel Projekt 1
Spalte A Spalte B Spalte C Spalte D Spalte E Spalte F Spalte G
Lfd.Nr. Projekt-Nr Projekt-Bezeichnung
1 Januar 11111 11111 11111 AAAA 11111
2 Februar 11111 11111 11111 AAAA 11111
: : : : : : :
12 Dezember 11111 11111 11111 AAAA 11111
11111 = Eingabe-Felder / AAAA = Formel-Felder. Es gibt ca. 100 Projekt pro Blatt.
Ich habe schon sehr viel googelt und recherchiert, könnte aber keine VBA-Lösung für o.g. Problem finden. Dazu bin ich noch ein VBA Laie.
Ich hoffe Ihr könnt mir helfen, für weiter Info stehe ich gerne zur Verfügung.
Gruß
Peter
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Undo im Change-Event
08.12.2009 02:15:03
Daniel
Hi
schau dir mal das beispiel an:
es können nur Zeilen geändert werden, in denen das Datum des aktuellen Monats steht.
realisiert wird das ganze über über das Change-Event mit der Undo-Funktion.
Ist zwar kein wirklicher Schutz, da erbärmlich einfach ohne Password auszuhebeln, aber um vor versehentlichen Überschreiben zu schützen reichts vielleicht:
https://www.herber.de/bbs/user/66417.xls
Gruß, Daniel
Anzeige
AW: Zellen ab ein bestimmtes Datum sperren
08.12.2009 05:05:46
hary
Moin
hier mal auch was zum Testen(erstmal nur ein Bereich)
https://www.herber.de/bbs/user/66418.xls
gruss hary
fuer Mitleser:

Private Sub Workbook_Open()
Dim i As Long
Worksheets("Tabelle1").Unprotect
Range("A1:IV65536").Locked = False
For i = Cells(Rows.Count, 2).End(xlUp).Row To 2 Step -1
If Month(Cells(i, 2)) 

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen ab einem bestimmten Datum sperren


Schritt-für-Schritt-Anleitung

Um Zellen in Excel ab einem bestimmten Datum zu sperren, kannst Du VBA verwenden. Hier ist eine einfache Anleitung:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Rechtsklicke auf "VBAProject (DeineDatei.xlsx)".
    • Wähle "Einfügen" > "Modul".
  3. Kopiere den folgenden Code in das Modul:

    Private Sub Workbook_Open()
       Dim i As Long
       Dim todayDate As Date
    
       todayDate = Date ' Aktuelles Datum
    
       ' Entsperre das Arbeitsblatt
       Worksheets("Tabelle1").Unprotect
    
       ' Alle Zellen entsperren
       Range("A1:IV65536").Locked = False
    
       ' Überprüfe Zellen und sperre sie
       For i = Cells(Rows.Count, 2).End(xlUp).Row To 2 Step -1
           If Cells(i, 2).Value < todayDate - 5 Then ' 5 Karenztage
               Cells(i, 3).Locked = True ' Spalte C sperren
               Cells(i, 4).Locked = True ' Spalte D sperren
               Cells(i, 5).Locked = True ' Spalte E sperren
               Cells(i, 7).Locked = True ' Spalte G sperren
           End If
       Next i
    
       ' Schütze das Arbeitsblatt
       Worksheets("Tabelle1").Protect
    End Sub
  4. Schließe den VBA-Editor und speichere Deine Datei als Excel-Makro-aktivierte Arbeitsmappe (*.xlsm).

  5. Öffne die Datei erneut, um das Skript auszuführen. Die Zellen in den definierten Spalten werden nun gesperrt, wenn das Datum überschritten ist.


Häufige Fehler und Lösungen

  • Fehler: „Das Makro kann nicht ausgeführt werden“

    • Stelle sicher, dass Deine Datei als .xlsm gespeichert ist und die Makros aktiviert sind.
  • Fehler: Zellen werden nicht gesperrt

    • Überprüfe, ob die Namen der Tabellen und die Spaltenindizes im VBA-Code korrekt sind.
  • Fehler: Der Blattschutz kann nicht aktiviert werden

    • Stelle sicher, dass Du die richtige Syntax für den Schutz verwendest und dass das Arbeitsblatt nicht bereits geschützt ist.

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du die Datenüberprüfung nutzen, um Eingaben ab einem bestimmten Datum zu verhindern:

  1. Wähle die Zellen aus, die Du schützen möchtest.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle bei „Zulassen“ die Option „Datum“ und stelle die Bedingungen ein, die Du benötigst.

Dies verhindert zwar nicht das Bearbeiten der Zellen, warnt aber den Benutzer vor ungültigen Eingaben.


Praktische Beispiele

Hier sind einige Beispiele, wie Du die oben genannten Schritte anwenden kannst:

  • Projektmanagement: Verwende den Code, um Zellen für Projektfortschritte ab einem bestimmten Datum zu sperren, sodass nur aktuelle Informationen bearbeitet werden können.

  • Budgetüberwachung: Du kannst Zellen für vergangene Monate sperren, um versehentliche Änderungen an Budgetdaten zu verhindern.


Tipps für Profis

  • Nutze Bedingte Formatierung, um visuelle Hinweise zu geben, wenn Daten ab einem bestimmten Datum eingegeben werden.
  • Experimentiere mit benutzerdefinierten Fehlermeldungen in der Datenüberprüfung, um Benutzer auf die Sperrung hinzuweisen.
  • Halte Deine Makros immer kommentiert, damit Du und andere Benutzer später verstehen, was jeder Teil des Codes bewirken soll.

FAQ: Häufige Fragen

1. Kann ich diesen Code in anderen Excel-Versionen verwenden? Ja, dieser VBA-Code funktioniert in den meisten modernen Excel-Versionen, einschließlich Excel 2010 und höher.

2. Was passiert, wenn ich die Zellen versehentlich sperre? Du kannst den Blattschutz aufheben, indem Du das Arbeitsblatt mit dem entsprechenden Passwort (falls gesetzt) entsperrst und dann den Code erneut anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige