Ich habe jede Menge Sheets in meinem Workbook. Und möchte jetzt das alle Formeln geschützt werden, so das Sie niemand verändert, oder versehentlich in den Zellen irgend was eingiebt.
Hat jemand eine Idee was ich da machen kann.
Karl
Sub formschutz()
On Error GoTo fehlerbeh
Dim wks As Worksheet
Application.ScreenUpdating = False
For Each wks In ThisWorkbook.Worksheets
ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False
With Cells
.Locked = False
.FormulaHidden = False
End With
With Cells.SpecialCells(xlFormulas, 23)
.Locked = True
'.FormulaHidden = True
End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Next wks
Exit Sub
fehlerbeh:
If Err.Number 0 Then
MsgBox Err.Description
End If
Application.ScreenUpdating = True
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel _
As Boolean)
Call KeinFormelSelektieren(Target)
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Call KeinFormelSelektieren(Target)
End Sub
Private Sub KeinFormelSelektieren(Bereich As Range)
Dim Zelle As Range
Set Bereich = Intersect(Bereich, Bereich.Parent.UsedRange)
If Not Bereich Is Nothing Then
For Each Zelle In Bereich
If Zelle.HasFormula Then
Bereich(1).Offset(1, 0).Select
Exit For
End If
Next
End If
End Sub
selektiert der Anwender eine Zelle mit Formel oder einen Bereich, der ein einer beliebigen Stelle eine Formel enthält, so wird die Selektion aufgehoben und nächste, darunterliegende Zelle ohne Formel selektiert.
dieser Code gilt für alle Sheets und alle Zellen der Datei.
allerdings ist diese Schutzfunktion sehr leicht auszuhebeln (durch wechseln in den Entwurfsmodus), dh. er schützt nur vor Bedienfehlern und nicht vor absichtlichen veränderungen.
Gruß, Daniel
Öffne dein Excel-Dokument und gehe zu der Arbeitsmappe, in der du die Formeln schützen möchtest.
Öffne den VBA-Editor:
ALT + F11
, um den VBA-Editor zu öffnen.Füge den folgenden VBA-Code ein, um die Formeln in allen Zellen deiner Arbeitsblätter zu schützen:
Sub formschutz()
On Error GoTo fehlerbeh
Dim wks As Worksheet
Application.ScreenUpdating = False
For Each wks In ThisWorkbook.Worksheets
ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False
With Cells
.Locked = False
.FormulaHidden = False
End With
With Cells.SpecialCells(xlFormulas, 23)
.Locked = True
End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Next wks
Exit Sub
fehlerbeh:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
Application.ScreenUpdating = True
End Sub
Führe das Makro aus, um den Schutz für alle Zellen mit Formeln zu aktivieren.
Testen: Versuche, die Zellen mit Formeln zu ändern, um sicherzustellen, dass der Schutz funktioniert.
Problem: Die Zellen mit Formeln sind immer noch bearbeitbar.
ActiveSheet.Unprotect
Cells.Locked = False
Problem: Blattschutz wird nicht korrekt angewendet.
Manuelle Methode: Du kannst auch jede Zelle manuell markieren und unter „Format“ > „Zellen“ > „Schutz“ die Häkchen setzen. Dies ist jedoch zeitaufwendig, besonders bei vielen Blättern und Zellen.
VBA zur Verhinderung der Zellenauswahl: Verwende diesen Code, um zu verhindern, dass der Benutzer eine Zelle mit einer Formel auswählt:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Target.HasFormula Then
Target.Offset(1, 0).Select
End If
End Sub
Beispiel für den Schutz einer bestimmten Zelle: Wenn du nur eine bestimmte Zelle schützen möchtest, kannst du den Bereich anpassen:
With Range("A1")
.Locked = True
End With
Schutz auf mehreren Blättern anwenden: Der obige Code schützt alle Blätter in der Arbeitsmappe. Du kannst ihn anpassen, um nur bestimmte Blätter zu schützen, indem du If wks.Name = "DeinBlattName" Then
verwendest.
1. Wie kann ich Zellen mit Formeln schützen? Um Zellen mit Formeln zu schützen, kannst du VBA verwenden, um den Blattschutz für diese Zellen zu aktivieren, wie im obigen Code beschrieben.
2. Was passiert, wenn ich den Blattschutz aufhebe? Wenn du den Blattschutz aufhebst, kannst du alle Zellen bearbeiten, einschließlich der Zellen, die zuvor geschützt waren. Stelle sicher, dass du den Schutz wieder aktivierst, wenn du fertig bist.
3. Funktioniert das auch in Excel 365? Ja, die beschriebenen Methoden funktionieren auch in Excel 365 und anderen modernen Excel-Versionen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen