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

Forumthread: Zellen nach Eingabe sperren

Zellen nach Eingabe sperren
Frank
Hallo Experten,
kann mir bei dem Code (er ist wohl aus diesem Forum) jemand helfen. Ich möchte die Ausführung auf die Tabellenblätter Januar-Dezember und die Bereiche (in jedem Blatt gleich) A1:I40 erweitern.
Der Code sperrt Zellen (Speicherung vorausgesetzt) , wenn sie Werte enthalten.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim zelle As Range
Sheets("September").Unprotect
For Each zelle In Sheets("September").UsedRange
If zelle.Value  "" Then
zelle.Locked = True
Else
zelle.Locked = False
End If
Next
Sheets("September").Protect
End Sub

Vielen Dank
Frank
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zellen nach Eingabe sperren
26.09.2009 21:50:00
Josef
Hallo Frank,
probier mal.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Dim intIndex As Integer, rng As Range, objSh As Worksheet
  
  On Error Resume Next
  
  For intIndex = 1 To 12
    Set objSh = Sheets(Format(DateSerial(1, intIndex, 1), "MMMM"))
    If Not objSh Is Nothing Then
      With objSh
        .Unprotect
        Set rng = .Cells
        rng.Locked = False
        Set rng = .UsedRange.SpecialCells(xlCellTypeFormulas)
        If Not rng Is Nothing Then rng.Locked = True
        Set rng = .UsedRange.SpecialCells(xlCellTypeConstants)
        If Not rng Is Nothing Then rng.Locked = True
        .Protect
      End With
      Set objSh = Nothing
    End If
  Next
  
  On Error GoTo 0
  
  Set rng = Nothing
  
End Sub

Gruß Sepp

Anzeige
AW: Zellen nach Eingabe sperren
26.09.2009 22:08:10
Frank
Hallo Sepp,
vorab erstmal vielen Dank für die schnelle Antwort:
die Erweiterung auf die anderen Blätter funtioniert.
was nicht mehr funktioniert: leere Zellen können nicht mehr befüllt werden.
Der Bereich A1:I40 wäre wichtig (es könnten auch die Spalten A-I sein)
kannst Du mir da noch weiterhelfen?
Grüße
Frank
Anzeige
AW: Zellen nach Eingabe sperren
26.09.2009 22:10:23
Josef
Hallo Frank,
dann halt so.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Dim intIndex As Integer, rng As Range, objSh As Worksheet
  
  On Error Resume Next
  
  For intIndex = 1 To 12
    Set objSh = Sheets(Format(DateSerial(1, intIndex, 1), "MMMM"))
    If Not objSh Is Nothing Then
      With objSh
        .Unprotect
        Set rng = .Range("A1:I40")
        rng.Locked = False
        Set rng = .Range("A1:I40").SpecialCells(xlCellTypeFormulas)
        If Not rng Is Nothing Then rng.Locked = True
        Set rng = .Range("A1:I40").SpecialCells(xlCellTypeConstants)
        If Not rng Is Nothing Then rng.Locked = True
        .Protect
      End With
      Set objSh = Nothing
    End If
  Next
  
  On Error GoTo 0
  
  Set rng = Nothing
  
End Sub

Gruß Sepp

Anzeige
AW: Zellen nach Eingabe sperren
26.09.2009 22:24:45
Frank
Hallo Sepp,
es läuft noch nicht rund, die Bereiche sind ok, aber unbefüllte Zellen werden auch gleich gesperrt. Teilweise werden beim Markieren zwei Zellen markiert.
Noch eine Idee?
Gruß
Frank
AW: Zellen nach Eingabe sperren
26.09.2009 22:32:26
Josef
Hallo Frank,
kann deine Prob leme nicht nachvollziehen. Beispieltabelle?
Gruß Sepp

Anzeige
AW: Zellen nach Eingabe sperren
26.09.2009 22:39:33
Frank
Hallo Sepp,
ich kann sie Dir senden - muss dazu einige Erklärungen geben - z.B. muss der Menüpunkt Makros per Passwort eingeblendet werden.
Per Mail?
Grüße
Frank
;

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

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