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

Einzelne Objekte nur schützen

Forumthread: Einzelne Objekte nur schützen

Einzelne Objekte nur schützen
06.12.2021 20:48:42
Tony
Guten Abend,
ich sitze aktuell an einer Frage/ einem Problem. Ich meiner Arbeitsmappe arbeite ich mit Blattschutz, aber ich muss dort das Objekte bearbeiten zulassen. Wenn ich dies nicht mache kann der Matrix Code nicht generiert werden so wie es sein soll.
Dadurch sind leider auch Objekte anwählbar und veränderbar die ich gern schützen würde. Gibt es eine Möglichkeit zu sagen, dieses und jenes Objekt soll wie beim Blattschutz geschützt sein?!
Lieber Gruss und Merci für eure Hilfe
Tony
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einzelne Objekte nur schützen
07.12.2021 08:06:51
guenni
Beim Formatieren des Objekts im Reiter "Schutz" die Häckchen entfernen.
AW: Einzelne Objekte nur schützen
07.12.2021 20:00:26
Tony
So einfach funktioniert es eben nicht aufgrund des Matrix Codes. Darum suche ich ja nach einer Möglichkeit über VBA die anderen Objekte zu schützen.
AW: Einzelne Objekte nur schützen
08.12.2021 12:28:04
Pierre
Hallo Tony,
versuche es mal damit:

Dim shForm As Shape
For Each shForm In ThisWorkbook.Worksheets("Tabelle1").Shapes
If shForm.Name  "Dings" And shForm.Name  "Bumms" Then
shForm.Locked = False
End If
Next shForm
Andersrum kannst du natürlich auch die aufzählen, die gesperrt bleiben sollen, dann eben "Locked = True"
Zusätzlich kannst du beim "Workbook_Open" Ereignis als erstes die ganzes Shapes sperren, und oder beim "BeforeClose".
Gruß Pierre
Anzeige
AW: Einzelne Objekte nur schützen
08.12.2021 21:43:37
Tony
Hallo Pierre,
ersteinmal Merci für deine Bemühung. Leider nützt mir das ganze so nicht viel. Durch die DataMatrix muss ich aktuell den Objektschutz für das komplett Arbeitsblatt deaktivieren. Mit deinem Code kann ich zwar die Objekte einzeln ansprechen, aber dies funktioniert nur wenn der Objektschutz auch aktiv ist. Dann kann ich damit gut arbeiten. Anderenfalls wird der code einfach "überlesen". Ich habe auch versucht die generierten Bilder des Codes frei zu geben, aber leider ohne Erfolg.
Was ist mein Probleme dabei... Ich schreibe in Zelle F15 etwas hinein (bzw. scanne es mit einem Lesegerät und dieses befüllt die Zelle), aus diesen Daten wird dann eine MatrixCode (andere Leute nutzen auch QR Codes an dieser stelle) in Zelle S15 erschaffen. Im Anschluss geht es mit F17... F19 usw. genauso weiter bis Zelle F31. spätestens dort erfolgt dann der Automatische druck, die Daten werden gelöscht und auch die Codes werden wieder gelöscht, sodass man eine "leeres" Arbeitsblatt wieder findet und weiter machen kann. In Zelle S15, S17 ... usw steht nicht viel mehr als

=DataMatrix(F15)
und dann wird dies ausgeführt.
Der Matrixcode selbst ist in einem Modul geschrieben und somit unabhängig vom Internet und benötigt auch kein AddIn.
Das wird wohl noch ein langwieriges Problem werden :-D
LG Tony
Anzeige
AW: Einzelne Objekte nur schützen
09.12.2021 09:45:33
Pierre
Hallo Tony,
eine Idee noch: Innerhalb deines Matrixcode-Moduls das darin erzeugte Objekt auf Locked = True setzen?
Wenn das nicht klappt, müsstest du dann jetzt bitte eine Beispielmappe hochladen, mit deinem Code.
Ich weiß aber nicht, ob ich dann noch helfen kann. Ansonsten jemand anderes.
Gruß Pierre
Anzeige
AW: Einzelne Objekte nur schützen
09.12.2021 21:00:12
Tony
Hallo Pierre,
ja das war gestern schon meine Idee. Hat aber irgendwie nicht funktioniert. Ich habe nun mal eine Datei parat gemacht. Vilelleicht kann mir ja jemand helfen mit dem Problem. Ich habe den original Blattschutz gestartet und auch 2 der Buttons mit eingefügt. Viel spass beim probieren :-)
https://www.herber.de/bbs/user/149726.xlsm
Ich hoffe das es mit dem upload und co auch funktioniert hat.
LG Tony
Anzeige
AW: Einzelne Objekte nur schützen
10.12.2021 08:55:35
Pierre
Hallo Tony,
Ich glaube, ich habe was :)
Im Modul "Allgemein" erweitere deinen Code so:

Sub Barcode_Eingabe()
 Worksheets("Materialliste").Unprotect Password:="XXX"
Cells(6500, 1).End(xlUp).Offset(1, 0).Select
End Sub
Unter "DieseArbeitsmappe" diesen Code noch unter deinen bestehenden hinzufügen:

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Worksheets("Materialliste").Protect Password:="XXX"
End Sub
Nun machst du folgendes: Blattschutz ganz normal in Excel aktivieren, aber den vorletzten Punkt "Objekte Bearbeiten" den Haken entfernen!
Natürlich musst du das Passwort noch ändern in den beiden Codes ;-)
Gruß Pierre
Anzeige
AW: Einzelne Objekte nur schützen
09.12.2021 10:11:08
Rudi
Hallo,
schon Schutz per VBA mit Parameter userinterfaceonly:=True probiert?
Gruß
Rudi
AW: Einzelne Objekte nur schützen
09.12.2021 20:18:43
Tony
Hallo Rudi,
so recht will das aktuell auch net gehen. Ich werde aber mal ne Datei machen wo jeder der mag sich probieren kann. Ich denke das wird alles etwas einfacher machen.
Lieber Gruss Tony
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Einzelne Objekte in Excel schützen


Schritt-für-Schritt-Anleitung

Um einzelne Objekte in Excel zu schützen, während der Blattschutz aktiv bleibt, kannst du die folgenden Schritte befolgen:

  1. Blattschutz aktivieren:

    • Gehe zu Überprüfen > Blatt schützen.
    • Aktiviere den Blattschutz und entferne das Häkchen bei "Objekte bearbeiten".
  2. VBA-Code anpassen:

    • Öffne den VBA-Editor mit ALT + F11.
    • Füge den folgenden Code in ein Modul ein, um bestimmte Objekte zu schützen:
    Sub ProtectShapes()
       Dim shForm As Shape
       For Each shForm In ThisWorkbook.Worksheets("Tabelle1").Shapes
           If shForm.Name <> "Dings" And shForm.Name <> "Bumms" Then
               shForm.Locked = True
           End If
       Next shForm
    End Sub
  3. Blattschutz mit VBA:

    • Um den Blattschutz bei bestimmten Ereignissen zu steuern, füge diesen Code in DieseArbeitsmappe ein:
    Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
       Worksheets("Materialliste").Protect Password:="XXX"
    End Sub
  4. Passwort anpassen:

    • Vergiss nicht, das Passwort in den VBA-Codes zu ändern.

Häufige Fehler und Lösungen

  • Fehler: Objekte sind nicht geschützt

    • Stelle sicher, dass du den Blattschutz mit der Option "Objekte bearbeiten" deaktiviert hast. Dieser Schritt ist entscheidend, damit der VBA-Code funktioniert.
  • Fehler: VBA-Code wird nicht ausgeführt

    • Überprüfe, ob der Blattschutz aktiv ist. Der Code kann nur funktionieren, wenn die Schutzoptionen korrekt gesetzt sind.

Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, gibt es auch alternative Möglichkeiten:

  1. Verwendung von Gruppen:

    • Du kannst die Objekte in Gruppen zusammenfassen und dann die gesamte Gruppe schützen. Dies ist allerdings weniger flexibel.
  2. Schutz auf Zellen:

    • Anstatt Objekte zu schützen, kannst du auch die Zellen, in denen die Objekte platziert sind, sperren.

Praktische Beispiele

  • Beispiel 1: Wenn du ein Diagramm schützen möchtest, kannst du den Namen des Diagramms im VBA-Code anpassen, um es von der Sperrung auszunehmen.

  • Beispiel 2: Du kannst den Code anpassen, um spezifische Objekte auf verschiedenen Arbeitsblättern zu schützen, indem du den Namen des Arbeitsblattes änderst.


Tipps für Profis

  • Nutze „userinterfaceonly:=True“:

    • Dies ermöglicht dir, den Blattschutz über VBA zu aktivieren, während die Benutzeroberfläche weiterhin interaktiv bleibt.
  • Erstelle eine Beispielmappe:

    • Wenn du auf ein Problem stößt, erstelle eine Beispielmappe, um das Problem leichter zu identifizieren und Lösungen zu finden.

FAQ: Häufige Fragen

1. Kann ich den Blattschutz auch ohne Passwort aktivieren? Ja, du kannst den Blattschutz ohne Passwort aktivieren, aber es ist empfehlenswert, ein Passwort zu setzen, um unbefugte Änderungen zu verhindern.

2. Wie kann ich den Schutz aufheben? Gehe zu Überprüfen > Blatt schützen und gib das Passwort ein, um den Schutz aufzuheben.

3. Welche Excel-Version benötige ich für VBA? VBA ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige