Hi,
wenn dieser, alleinberechtigte User außer dem zitierten "Zugangscode" ebenfalls keinen Einblick in die Codemodule der Anwendung erhalten darf, dann
kannst du das Vorhaben knicken!
Um die "ChangeZugangscode()" ausführen zu können, muss vorher das VBAProjekt Kennwort eingegeben werden.
Was grundsätzlich auch per Sendkeys - VBA Makro möglich, aber nicht innerhalb der genannten Prozedur.
Somit mind. 2 getrennte Sub - Aufrufe erforderlich, beide müssen "von Hand" aus der Excel Oberfläche gestartet werden.
Auch wenn der privilegierte User das Projekt Kennwort nicht eingeben / kennen muss hat er vor dem 2. Schritt den vollen Zugriff auf den VBE-Editor.
Dagegen schützt sich das VBA Projekt selbstständig mit dem einmal vergebenen Kennwort, wenn du am Ende der "ChangeZugangscode()" die Datei speicherst und die Applikation schließt.
Alternativ ist eine gute Lösung mit API Aufrufen hier:
https://stackoverflow.com/questions/16174469/unprotect-vbproject-from-vb-code/16176557#161765
Wichtig ist die Fensternamen im Code von James MacAdie an die verwendete Excel-Version anpassen, dann läuft es bei mir auch in einem Rutsch.
LG
|