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


Hallo liebe Leute,
ich habe folgendes Problem.
In meinen Sheet werden nach der Auswahl mit einer Combo-Box eine Reihe Berechnungen (SVERWEISE) ausgeführt. Leider werden diese Unterbrechungen unterbrochen, wenn man mit der Maus klickt, oder auf der Tastatur eine Eingabe macht.
Ich wü...
Anzeige

hallo zusammen
ich hätte gerne gemäss dem beispiel gewusst, wie ich eine summe bilde in abhängigkeit
eines zelleintrages.
gruess
https://www.herber.de/bbs/user/56754.xls

Hallo Excel-Anwender,
als Anlage habe ich eine Excel-Datei mit 2.Arbeitsblättern beigefügt. Das 1.Arbeitsblatt heißt Ber.Blatt, das 2. Tabelle 2009. Auf dem 1.Arbeitsblatt ist in Zelle B3 eine Vergütungsbezeichnung angegeben. Im 2.Arbeitsblatt sind in der Spalte A5-A28 ebenfalls Vergütungsb...
Anzeige

Hallo Excelperten,
ich lese via VBA zwei Tabellen ein und erstelle daraus eine Liste. Ich überprüfe dabei, ob es bei den aktuellen Tabellen Änderungen im Vergleich zur alten Liste gibt und übertrage diese Änderungen. Dazu lese ich den Zelleninhalt (eine Product-ID) aus den einzelnen Zeilen...

hallo,
ich stelle derzeit in einer Notenliste die Namen der Schüler zusammen mit dem befehl:
=VERKETTEN('GT-M2 07'!C7&", "&'GT-M2 07'!D7)
wobei GT-M2 07 sich auf eine Namensliste in einem anderen Tabellenblatt bezieht. Dort sind Vor- und Zuname in einzelnen Zellen eingetrage...

Hallo Excelfreaks
steht vor folgendem Problem
Ausgangslage: Budgetauswertung, aufgebaut in Spalten Kostenstelle/Konto/€-Wert.
Die Kostenstellen/Kontenkombinationen finden sich in der monatlich erstellen Budgetplanwerten und Istkosten wieder.
In eine Budgetauswertung möchte ich f...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige