Modul modifizieren

  • Allgemein

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Chrisburg.

    Modul modifizieren

    Hallo liebe Experten,

    ich habe für meine Dienstgruppe eine Excel Arbeitsmappe erstellt in der jeder Monat über ein einzelnes Arbeitsblatt aufgerufen werden kann. Damit bestimmte Zellen mit Formeln und Vorgaben nicht aus Versehen überschrieben werden habe ich alle Arbeitsblätter mit einem Blattschutz versehen.

    Wenn ich nun an der Arbeitsmappe arbeite muss ich den Blattschutz immer einzeln aufheben und wieder setzten. Nun ist mir das folgende Modul von hier aufgefallen mit welchem ich den Blattschutz für alle Arbeitsblätter setzten bzw. aufheben kann.

    VB.NET-Quellcode

    1. Sub YesProtect()
    2. Dim wks As Worksheet
    3. For Each wks In Worksheets
    4. wks.Protect "MeinPasswort"
    5. Next wks
    6. End Sub
    7. Sub NoProtect()
    8. Dim wks As Worksheet
    9. For Each wks In Worksheets
    10. wks.Unprotect "MeinPasswort"
    11. Next wks
    12. End Sub


    Das funktioniert über zwei definierte Schaltflächen auch prima, allerdings kann jetzt JEDER hierdurch den Blattschutz aufheben, da die Schaltflächen allen zur Verfügung steht.

    Gibt es eine Möglichkeit beim Aufheben des Blattschutzes für alle Arbeitsbätter das Passwort abzufragen, dasss es also nicht im Makro gespeichert ist sondern dass das Makro eine Eingabebox erscheinen lässt in welche man erst das Paswort eingeben muss und dann erst bei korrektem Paswort der Blattschutz für alle Arbeitsblätter aufgehoben wird.

    Bin leider absoluter Anfänger und habe noch sehr wenig Ahnung ?( .

    Falls mir jemand helfen könnte wäre das sehr nett.

    Vielen lieben Dank im Voraus

    Chrisburg



    PS: Ich habe beim jetzigen Blattschutz noch ein Problem:

    Es sollten eigentlich die ungeschützen Zellen bei aktiviertem Blattschutz weiterhin formatierbar und Objekte zu bearbeiten sein. Dies ist leider nicht der Fall sobald das o.g. Marco verwende, obwohl es vorher beim Einzelblattschutz so eingestellt war.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Chrisburg“ ()

    du kannst doch im Makro eine InputBox anzeigen, wo ein PW einzugeben ist. Falls das PW falsch ist, bricht das Makro ab.

    Bei Excel kann man beim Blattschutz alles mögliche differenziert einstellen - musstemal gucken, obs auch was gibt, dass Formatierungen ungeschützt bleiben - weißichnich.

    Aber ich denke eiglich, son Kalender-Tabellenblatt kann man hinreichend gut gestalten, dass da nicht jeder User nach seim Belieben herumverschlimmbessern muß ;)
    Vielen Dabk für Deine schnelle Antwort.

    Wenn ich den Blattschutz manuell setzte kann ich natürlich

    - Zellen formatierbar

    - Objekte bearbeiten


    anklicken und das dann mitspeichern.

    In dem o.a. Macro wird dies aber nicht gesetzt und ich weiß leider nicht wie ich es im Macro eintragen muss, dass diese einstellung übernommen wird.



    Wie gesagt, ich bin ein absoluter Anfänger in Bezug auf Macros und VB, daher meine dummen Fragen.

    Deshalb weiß ich leider auch nicht wie eine Inputbox durch mein Macro anzeigen lassen kann. Könntest Du mir das als Beispiel posten?



    Nochmals Danke!

    Chrisburg

    VB.NET-Quellcode

    1. Private Sub CommandButton1_Click()
    2. If InputBox("Bitte Zugangscode eingeben:") = "deinpasswort" Then
    3. Dim wks As Worksheet
    4. For Each wks In Worksheets
    5. wks.Protect "MeinPasswort"
    6. Next wks
    7. else
    8. msgbox("Keine Berechtigung!")
    9. End If
    10. End Sub


    Solltest natürlich den Zugang zur Entwicklungsumgebung sperren :D sonst kann den Code jeder im makro lesen.

    Musst mal schauen dass du Benutzer dürfen Bereiche bearbeiten angeklickt hast. Bei mir klappt das.