PDA

Vollständige Version anzeigen : Problem mit Blattschutz


Tayler
19.02.2008, 10:20
sub Blattschutz()
ActiveSheet.Unprotect Password:="Kennwort"
ActiveSheet.Range(Cells(6, 1), Cells(6, 8)).Locked = True
ActiveSheet.Range(Cells(12, 1), Cells(loLetzte, 15)).Locked = True
ActiveSheet.Protect Password:="Kennwort"
ActiveWorkbook.Save
end sub()

Wenn ich nun die Datei wieder öffnen, dann ist zwar der Blattschutz aktiviert, aber die gesperrten Zellen kann man verändern. Wenn ich nun den Blattschutz über Extras-Schutz aufhebe und wieder aktiviere funktioniert es.

Kann mir jemand sagen woran es liegt?

Gruß

Tayler

jinx
19.02.2008, 10:25
<font size="2" face="Century Gothic">Moin, Tayler,

auch den Code angeben. der in anderen Modulen bzw. Klassenmodulen steht - loLetzte ist nicht belegt, ansonsten tritt das Verhalten bei Verwendung des Codes bei mir unter Excel2002 nicht auf...</font>

Tayler
19.02.2008, 10:29
Hallo jinx.
Hier der komplette Code:
sub Blattschutz()
loLetzte = Sheets("Bestellformular").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Bestellformular").Unprotect Password:="AVQSMarco"
Sheets("Bestellformular").Range(Cells(6, 1), Cells(6, 8)).Locked = True
Sheets("Bestellformular").Range(Cells(12, 1), Cells(loLetzte, 15)).Locked = True
Sheets("Bestellformular").Protect Password:="AVQSMarco"
ActiveWorkbook.Save
end sub

jinx
19.02.2008, 10:37
<font size="2" face="Century Gothic">Moin, Taylor,

kann ich auch mit dem veränderten Code nicht unter 2002/XP nachvollziehen - siehe Anhang (tritt der Fehler dort auch auf?).</font>

Tayler
19.02.2008, 10:44
Hallo jinx.
Bei dieser Datei tritt der gleich Fehler auf wie bei meiner.

Gruß

Tayler

jinx
19.02.2008, 10:53
<font size="2" face="Century Gothic">Moin, Taylor,

mal abgesehen von der Falle mit dem Fehlen des Aufhebens des Blattschutzes (war unbeabsichtigt von meiner Seite, ich bitte um Entschuldigung) - magst Du mir bitte sagen, welches Betriebssystem, welche Version und welches ServicePack Du verwendest? Dann müsste ich ggf. dazu mal meinen Server "quälen"...</font>

Tayler
19.02.2008, 10:56
Hallo jinx.
Benutze folgen Excel-Version und Betriebsystem:
Excel-Version: 2002 mit SP2, Betriebsystem: Windows XP mit SP2

Gruß

Tayler

jinx
19.02.2008, 11:07
<font size="2" face="Century Gothic">Moin, Tayler (diesmal explizit mit e),

bei mir läuft XP Professional Sp-2 und Excel 2002/XP mit dem SP3 - aber den von Dir beschriebenen Fehler kann ich nicht nachvollziehen.

In der Beispielmappe sollte über das Workbook_Open-Ereignis der Code erneut ausgeführt werden. Wenn dies nicht passiert, kann ich nur noch das Worksheet_Activate-Ereignis vorschlagen: eine andere Tabelle beim Öffnen als aktive angeben, um beim Wechsel auf die Tabelle den Code ausführen zu lassen. Dies klärt zwar nicht, warum eine Änderung in geschützten Zellen möglich ist, würde aber diese Möglichkeit verhindern.

Wie gesagt: ich habe keine Vorstellung, woran es wegen des Aufhebens liegen könnte (außer dem allgemeinen Vorschlag: Hast Du schon mal den Rechner neu gestartet?).</font>

Tayler
19.02.2008, 11:15
Hallo jinx.
Habe den Rechner gerade neu gestartet. Habe das Modul auch mal so ausgefürht, aber der Effekt bleibt leider. Kann mir auch nicht erklären woran es liegt. Wenn ich es von Hand mache, funktioniert es. Kann sein das irgendein Add-In bei mir fehlt?

Gruß

Tayler

Sturmovik
19.02.2008, 11:29
Moin

Mal ein anderer Ansatz:
Heb den Blattschutz auf und setze ihn unter extras->Schutz neu

Vielleicht stimmt dort eine Einstellung nicht, denn bisher hab ich die Erfahrung gemacht, daß beim Schützen per Code diese Einstellungen genommen werden, wenn nichts explizit angegeben ist.

mfg Sturmovik

Tayler
19.02.2008, 12:18
Hallo Sturmovik.
Wenn ich es per Hand machen funktioniert ja auch.

Gruß

Tayler

chris-kaiser
19.02.2008, 12:27
hiho

versuche es einmal so

Option Explicit

Sub Blattschutz()
Dim loLetzte
'loLetzte = 16
With Sheets("Bestellformular")
.Protect Userinterfaceonly:=True, Password:="Kennwort"
loLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
.Range(Cells(6, 1), Cells(6, 8)).Locked = True
.Range(Cells(12, 1), Cells(loLetzte, 15)).Locked = True

End With
ActiveWorkbook.Save
End Sub

Tayler
19.02.2008, 12:44
Hallo chris-kaiser.
Danke für die Hilfe. Leider tritt der Fehler immer noch auf. Solange ich die Datei nicht abspeichere funktioniert es. Wenn ich die Datei abspeichere, schließe und wieder öffne, dann tritt der Fehler auf.

Gruß

Tayler

chris-kaiser
19.02.2008, 12:47
hi

welcher Fehler?
was für eine Meldung kommt?

hast Du verbundene Zellen?

Tayler
19.02.2008, 12:50
Hallo chris-kaiser.
Es kommt keine Fehlermeldung.
Fehler: Blattschutz ist aktiviert, aber die Zellen sind nicht gesperrt.

Gruß

Tayler

chris-kaiser
19.02.2008, 13:03
hi

:)

hier noch mal die Demo
und am Bildschirm steht nun was gemacht wird

Tayler
19.02.2008, 13:16
Hallo chris-kaiser.
Danke für die Hilfe. Leider werden bei mir die Zellen nicht gesperrt. Erst wenn ich es per Hand mache (Blattschutz aufheben und wieder aktivieren). Weiss leider nicht woran es liegt.

Gruß

Tayler

chris-kaiser
19.02.2008, 13:42
hiho

lade doch mal eine Demo hoch (löschen einfach alle Texte in der Mappe und speicher diese Kopie ab)
und hänge es hier an!

dann wird das Problem gleich gelöst sein.
;)

Tayler
19.02.2008, 14:11
Hallo chris-kaiser.
Habe es mit deiner Datei ausprobiert und mit dieser funktioniert es auch nicht. Habe sie jetzt auch unter Excel 2007 ausprobiert. Passiert der gleich Fehler wie unter Excel 2002-Sp2.

Gruß

Tayler