Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1256to1260
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

Blattschutz setzen funktioniert nicht

Blattschutz setzen funktioniert nicht
Thomas
Hallo zusammen,
habe Probleme mit aufgeführtem Code.
Möchte am Ende für alle Sheets wieder einen Blattschutz setzen,
es kommt jedoch folgende Fehlermeldung.
Laufzeitfehler 1004
Anwendungs- oder objektdefinierter Fehler

Sub Kostenstellenkorrektur()
For Each WSTabelle In Sheets
WSTabelle.Unprotect ("JA")
Next WSTabelle
' Tabellenblätter markieren
Sheets(Array("Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", _
"Dez")).Select
Range("AR4").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(R[4]C[-1]:R[29]C[-1],""0030-D3125"",R[4]C:R[29]C)"
' Alle Tabellenblätter mit PW schützen
For Each WSTabelle In Sheets
WSTabelle.Protect ("JA")
Next WSTabelle
End Sub
Danke für eure Hilfe
Thomas

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

Betreff
Benutzer
Anzeige
AW: Blattschutz setzen funktioniert nicht
29.03.2012 09:42:16
marcl
Hallo Thomas,
Sub Kostenstellenkorrektur()
Dim WSTabelle as Worksheet ' Objektvariable fehlte!
For Each WSTabelle In Worksheets
WSTabelle.Activate
WSTabelle.Unprotect "JA"
Next WSTabelle
' Tabellenblätter markieren
Sheets(Array("Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", _
"Dez")).Select
Range("AR4").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(R[4]C[-1]:R[29]C[-1],""0030-D3125"",R[4]C:R[29]C)"
' Alle Tabellenblätter mit PW schützen
For Each WSTabelle In Worksheets
WSTabelle.Activate
WSTabelle.Protect "JA"
Next WSTabelle
End Sub
Gruß
marcl
Anzeige
das liegt an den selekktierten Blättern ...
29.03.2012 09:48:31
Matthias
Hallo
Merke Dir die Starttabelle(Index) in der Du vor dem Code stehst
Option Explicit
Sub Thomas()
Dim WSTabelle As Worksheet
Dim MyIdx&
MyIdx = ActiveSheet.Index
For Each WSTabelle In Sheets
WSTabelle.Unprotect "JA"
Next WSTabelle
Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select
Range("AR4").Select
ActiveCell.FormulaR1C1 = "=SUMIF(R[4]C[-1]:R[29]C[-1],""0030-D3125"",R[4]C:R[29]C)"
Sheets(idx).Select
For Each WSTabelle In Sheets
WSTabelle.Protect "JA"
Next WSTabelle
End Sub
Gruß Matthias
Nachtrag! (Name der Variable) ...
29.03.2012 10:16:30
Matthias
Hallo
Sheets(Idx) war natürlich falsch! Die Variable heißt: MyIdx
Option Explicit
Sub Thomas()
Dim WSTabelle As Worksheet
Dim MyIdx&
MyIdx = ActiveSheet.Index
For Each WSTabelle In Sheets
WSTabelle.Unprotect "JA"
Next WSTabelle
Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select
Range("AR4").Select
ActiveCell.FormulaR1C1 = "=SUMIF(R[4]C[-1]:R[29]C[-1],""0030-D3125"",R[4]C:R[29]C)"
Sheets(MyIdx).Select
For Each WSTabelle In Sheets
WSTabelle.Protect "JA"
Next WSTabelle
End Sub

Gruß Matthias
Anzeige
AW: Nachtrag! (Name der Variable) ...
29.03.2012 12:50:07
Thomas
Hallo zusammen,
nochmal der Neuling :-).
Habe nun das VBA vom Nachtrag (Mathias) danke an dieser Stelle übernommen.
Allerdings kommt jetzt ein "Laufzeitfehler 13" nachdem das 12 te Blatt auf Unprotect gesetzt wurde.
Das ganze bleibt dann an der Fett markierten Stelle stehen.
Option Explicit
Sub Thomas()
Dim WSTabelle As Worksheet
Dim MyIdx&
MyIdx = ActiveSheet.Index
For Each WSTabelle In Sheets
WSTabelle.Unprotect "JA"
Next WSTabelle
Vielleicht kann hierzu noch einmal jemand Stellung nehmen.
Danke vorab
AW: Nachtrag! (Name der Variable) ...
29.03.2012 15:38:24
Thomas
Hallo zusammen,
habe nun die Lösung.
Danke nochmal an alle die mich hier unterstützt haben
Anbei zur Info

Sub Kostenstellenkorrektur()
For Each WSTabelle In Sheets
WSTabelle.Unprotect ("JA")
Next WSTabelle
' Tabellenblätter markieren
Sheets(Array("Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", _
"Dez")).Select
Range("AR4").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(R[4]C[-1]:R[29]C[-1],""0030-D3125"",R[4]C:R[29]C)"
Dim i As Long
For i = 1 To ActiveWorkbook.Sheets.Count
Sheets(i).Select
Sheets(i).Protect Password:="JA"
Next
End Sub

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige