Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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

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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige