Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Worksheet wird nicht gesperrt
#1
Liebe Excel-Gemeinde

Ich habe folgenden Code, der beim Öffnen des Workbook ausgeführt wird. Klappt soweit bis auf den Teil Worksheets("Unterrichtsbesuch").Protect DrawingObjects:=False, Password:="Besuch" in BenutzerModus. Das entsprechende Worksheet wird einfach nicht gesperrt.
BenutzerModus steuere ich auch an anderen Orten an, wo der Code immer korrekt ausgeführt und auch das Worksheet gesperrt wird.

Hat jemand eine Idee, wo der Fehler liegen könnte? Hebt irgend ein Teil im Code das Ganze auf?

Vielen lieben Dank und Gruss
mauritius05

Code:
Private Sub Workbook_Open()
Call BenutzerModus
Tabelle3.Activate
Tabelle3.ScrollArea = "B1:B30"
Tabelle4.ScrollArea = "A1:B70"
Tabelle2.ScrollArea = "A1:B180"
Dim Frage
Frage = Application.Dialogs(xlDialogSaveAs).Show("UB_yyyy_mm_Nachname LP")
If Not Frage Then Me.Close False
End Sub
Code:
Sub BenutzerModus()

Sheets("Unterrichtsbesuch").Select
Range("B19").Select
Sheets("Wegleitung").Select
Range("A2").Select
Worksheets("Start").Protect Password:="Besuch"
Worksheets("Unterrichtsbesuch").Protect DrawingObjects:=False, Password:="Besuch"
Worksheets("Wegleitung").Protect Password:="Besuch"

End Sub
Antworten Top
#2
Hallo

im Zweifelsfalle den Code noch mal genau vergleichen. Dann wäre dir etwas aufgefallen!
In allen Sheets verwendest du Sheet().Protect, aber nicht bei "Unterrichtsbesuch"!
Da steht klar und deutlich "DraingObjects=False!  Nimm den Befehl bitte mal raus!

mfg Gast 123
Antworten Top
#3
Ja, das ist mir schon klar. Aber eben, an anderen Stellen verweise ich ebenfalls auf BenutzerModus und dort wird auch der Teil mit DrawingObjects... korrekt ausgeführt.
Wieso also wird Call BenutzerModus einmal korrekt ausgeführt und ein anderes Mal nicht? Ich verstehs nicht.
Antworten Top
#4
Hallo

Sorry, da muss ich passen, keine Idee dazu ....   Vielleicht weiss es ein Kollege?

mfg Gast 123
Antworten Top
#5
(07.02.2024, 16:59)mauritius5 schrieb: Ja, das ist mir schon klar.

Moin!
Warum setzt Du dann im Open ScrollAreas?
(die dürften sich doch nicht im workflow ändern?)
Was soll überhaupt das ganze Select-Gedöns?
Warum sollte im Open Blattschutz gesetzt werden?
Das macht man doch sinnvollerweise im Before_Close?

Ich weiß, viele Fragen …

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
Doch, die Scroll Areas ändern teilweise.
Select-Gedönse aus dem Grunde, dass die User ihren Mauszeiger immer am korrekten Ort haben.
Was macht es denn für einen Unterschied, ob Blattschutz bei Open oder Close gesetzt wird? Auch wenn ich BenutzerModus bei Close setze, nimmt es mir den Teil zum Blattschutz bei "Unterrichtsbesuch" nicht. Die anderen beiden Sheets werden korrekt geschützt.
Antworten Top
#7
Hallo

letzte Idee von mir.  Ausser DrawingObjects gibt es noch - ProtectContents und ProtectSzenarios.
Musst du die nicht auf True setzen??  War so eine spontane Idee von mir, ohne Gewähr das es klappt.

mfg Gast 123
Antworten Top
#8
Wenn das Problem bei DrawingObjects liegen würde, würde es doch an anderen Orten, wo ich auf BenutzerModus verweise, nicht plötzlich gehen - oder?

Nach meinem Verständnis müsste also ein Teil von Folgendem den Teil BenutzerModus stören. Obwohl das auch nicht sein kann, weil der Rest von BenutzerModus korrekt abläuft. Ich kann mir echt keinen Reim draus machen.

Code:
Tabelle3.Activate
Tabelle3.ScrollArea = "B1:B30"
Tabelle4.ScrollArea = "A1:B70"
Tabelle2.ScrollArea = "A1:B180"
Dim Frage
Frage = Application.Dialogs(xlDialogSaveAs).Show("UB_yyyy_mm_Nachname LP")
If Not Frage Then Me.Close False
Antworten Top
#9
Hi,

wenn man dir wirklich helfen und nicht nur spekulieren soll, dann solltest du endlich nicht nur den Code, den du verdächtigst, vorstellen, sondern eine (abgespeckte) Beispieldatei, bei der der Fehler auftritt. Nur dann können auch andere außer dir versuchen das Problem zu debuggen.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • derHoepp
Antworten Top
#10
Hallöchen,

also, Dein Makro Workbook_Open führt das Sub BenutzerModus() aus, und dort wird nur die eine Zeile nicht ausgeführt - der Rest schon - und es kommt keine Fehlermeldung?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste