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

Forumthread: Blattschutz Fehler 91

Blattschutz Fehler 91
09.04.2014 20:22:05
Marc
Hallo zsm,
ich möchte gern den Blattschutz aktivieren, sobald ich das aber tue bringt er mir die Fehlermeldung 91. Objektvariable oder with block nicht festgelegt.
Hab schon alle Häkchen im Blattschutz versucht... ohne Erfolg :/
Wo liegt den das Problem? Um Hilfe bin ich sehr Dankbar!!
Gruß Marc
Private Sub CommandButton1_Click()
Dim rngBer As Range, rngC As Range
If ComboBox1.Value = "" Then MsgBox "Bitte wählen Sie ein BLM aus."
If ComboBox2.Value = "" Then MsgBox "Bitte wählen Sie eine Schicht aus."
With Sheets("Schichteinteilung")
Application.Calculation = xlCalculationManual
For i = 12 To 70
If ComboBox2.Value = "nur Frühschicht" Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 1 'die Passage wird in jeder Bedingung markiert
Else
End If
If ComboBox2.Value = "nur Spätschicht" Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 2
Else
End If
If ComboBox2.Value = "Gerade KW Spät" Then
Set rngBer = .Cells(i, 5)
For Each rngC In rngBer
If rngC.Value = 1 Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 2
ElseIf rngC.Value = 2 Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 1
End If
Next
End If
If ComboBox2.Value = "Ungerade KW Spät" Then
Set rngBer = .Cells(i, 5)
For Each rngC In rngBer
If rngC.Value = 1 Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 1
ElseIf rngC.Value = 2 Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 2
End If
Next
End If
Next
End With
Application.Calculation = xlCalculationAutomatic
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattschutz Fehler 91
10.04.2014 06:30:02
Hajo_Zi
Du hast den falschen Code gepostet. Der enthält keinen Blattschutz.

AW: Blattschutz Fehler 91
10.04.2014 14:32:43
Marc
Hallo Hajo,
das ist schon der Code dazu, ich aktiviere den Blattschutz über das Register Überprüfen - Blatt schützen.
Gruß

Anzeige
AW: Blattschutz Fehler 91
10.04.2014 15:14:39
Tino
Hallo,
hebe den Schutz auf und am ende setzt du ihn wieder.
Code nicht getestet, Code muss fehlerfrei durchlaufen sonst
kann der Schutz nicht wieder eingestellt werden!
Private Sub CommandButton1_Click()
Dim rngBer As Range, rngC As Range
If ComboBox1.Value = "" Then MsgBox "Bitte wählen Sie ein BLM aus."
If ComboBox2.Value = "" Then MsgBox "Bitte wählen Sie eine Schicht aus."
With Sheets("Schichteinteilung")
.Unprotect "Dein Kennwort" 'Schutz aufheben ************
Application.Calculation = xlCalculationManual
For i = 12 To 70
If ComboBox2.Value = "nur Frühschicht" Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 1 'die Passage wird in jeder Bedingung markiert
Else
End If
If ComboBox2.Value = "nur Spätschicht" Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 2
Else
End If
If ComboBox2.Value = "Gerade KW Spät" Then
Set rngBer = .Cells(i, 5)
For Each rngC In rngBer
If rngC.Value = 1 Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 2
ElseIf rngC.Value = 2 Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 1
End If
Next
End If
If ComboBox2.Value = "Ungerade KW Spät" Then
Set rngBer = .Cells(i, 5)
For Each rngC In rngBer
If rngC.Value = 1 Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 1
ElseIf rngC.Value = 2 Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 2
End If
Next
End If
Next
.Protect "Dein Kennwort" 'Schutz setzen *****************
End With
Application.Calculation = xlCalculationAutomatic
End Sub
Gruß Tino

Anzeige
AW: Blattschutz Fehler 91
10.04.2014 21:24:10
Marc
Danke Tino, läuft!!
macht das grundsätzlich Sinn den Blattschutz auszuschalten während der code läuft?
Gruß Marc

AW: Blattschutz Fehler 91
11.04.2014 11:34:32
Tino
Hallo,
naja meiner Meinung nach dient der Blattschutz nur gegen versehentliche Änderung,
gegen absichtliche ist dieser zu einfach aufzuheben.
Alternativ kann man am Anfang mit protect arbeiten und den
Parameter UserInterFaceOnly auf True setzten,
dann ist eine Änderung der Zellen mit VBA möglich aber nicht von Hand.
Man muss nur wissen, dass dies nicht z. Bsp. bei Änderungen von Objekten verwendet werden kann.
Private Sub CommandButton1_Click()
Dim rngBer As Range, rngC As Range
If ComboBox1.Value = "" Then MsgBox "Bitte wählen Sie ein BLM aus."
If ComboBox2.Value = "" Then MsgBox "Bitte wählen Sie eine Schicht aus."
With Sheets("Schichteinteilung")
'Schutz aufheben für VBA ************
.Protect "Dein Kennwort", UserInterFaceOnly:=True
Application.Calculation = xlCalculationManual
For i = 12 To 70
If ComboBox2.Value = "nur Frühschicht" Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 1 'die Passage wird in jeder Bedingung markiert
Else
End If
If ComboBox2.Value = "nur Spätschicht" Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 2
Else
End If
If ComboBox2.Value = "Gerade KW Spät" Then
Set rngBer = .Cells(i, 5)
For Each rngC In rngBer
If rngC.Value = 1 Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 2
ElseIf rngC.Value = 2 Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 1
End If
Next
End If
If ComboBox2.Value = "Ungerade KW Spät" Then
Set rngBer = .Cells(i, 5)
For Each rngC In rngBer
If rngC.Value = 1 Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 1
ElseIf rngC.Value = 2 Then
.Cells(i, Rows(1).Find(ComboBox1).Column) = 2
End If
Next
End If
Next
End With
Application.Calculation = xlCalculationAutomatic
End Sub
Gruß Tino
Anzeige
;

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