Hallo zusammen,
kurz zur Situation: Ich möchte, dass user einen Zugangscode in einem Excel anpassen können, der wiederum für gewisse API genutzt wird. Der soll als Konstante in die erste Zeile eines Moduls reingeschrieben werden (d.h. die erste Zeile wird immer ersetzt wenn der user einen neuen Zugangscode eingeben will via Inputbox,. aber nur dann, und nicht jedes mal - also nur wenn sich der Zugangscode ändert). Den VBA Code dafür habe ich und er funktioniert. Auch der Virenscanner missinterpretiert das ganze nicht. Das ganze ist aber natürlich nur sinnvoll, wenn der user dann nicht einfach in den VBA code reingehen kann und die Konstante angucken (mehrere user nutzen per shared drive das gleiche Dokument, und nur einer soll diesen gelegentlich wechselnden Code kennen).
Frage ist also: Gibt es code, der den eigenen Passwortschutz aufheben und später wieder hinzufügen kann? Meine Logik wäre so etwas:
Const Zugangscode = "111aaa"
Const ModulePW = "123abc"
Public Sub ChangeZugangscode()
Dim v as Variant
v = inputbox(...) 'input des neuen Zugangscodes
If Not IsNumeric(v) Then 'Konstante muss mit Anführungszeichen definitiert werden außer bei einer Zahl
v = """" & v & """"
End If
xxx1(ModulePW) 'VBA Project Passwortschutz hier aufheben
ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.DeleteLines 1
ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.InsertLines 1, "const Zugangscode = " & v
xxx2(ModulePW) 'VBA Project Passwortschutz hier wieder erstellen mit gleichem Passwort
End Sub
System: Excel 2016, Win 7 oder Win 10 (je nach user)
Anybody?
LG Bob
|