Ich habe eine Art "Lizenzsystem" in meine Userform installiert.
Dieses funktioniert wiefolgt:
Ich habe auf einem externen Server eine Liste mit aktuell 15 "Festplatten-Seriennummer" liegen.
Beim Öffnen der Arbeitsmappe wird über ein Datenabruf-Befehl sämtliche Seriennummern in eine eigene Tabelle geschrieben.
Möchte ich meine Userform nun öffnen - überprüft sie vorher, ob die Festplatten-Seriennummer des PC mit der Nummer aus der Liste übereinstimmt.
If CreateObject("Scripting.FileSystemObject").GetDrive("c:").SerialNumber = Sheets("Seriennummer").Range("A1").Value OR Sheets("Seriennummer").Range("A2").Value OR Sheets("Seriennummer").Range("A3").Value Then
Userform1.Show
Else
MsgBox "Lizenzfehler - Lizenz ist abgelaufen oder Programm befindet sich im Wartungsmodus - Bitte kontaktieren Sie einen Administrator!"
ActiveWorkbook.Save
Application.Quit
Mein Problem ist - siehe Code, da ich aktuell bei neuen "Nutzern" den Code der Anwendung immer wieder ändern muss indem ich ein weiteres OR Sheets("Seriennummer").Range("A2").Value hinzufügen muss. Das ist bei ständig hinzukommenden Nutzern sehr nervig und zum anderen könnte man, wenn man etwas Ahnung hat, seine Seriennummer ID in die besagte Tabelle schreiben und man hätte Zugriff. Das Programm soll kein Hochsicherheitstrakt sein aber ich hatte eine Überlegung, ob man anstelle der Überprüfung einzelner Zellen nicht auch eine ganze Spalte überprüfen könnte. Dann würde zumindest des Hinzufügen von neuen Code in die Anwendung wegfallen. Gibt es vielleicht auch eine möglich, die Werte direkt vom externen Server abzugleichen? Dann müsste über Excel DATEN abrufen keine Werte erst in eine Tabelle kopiert werden müssen.
Vielen Dank für eure Hilfe und liebe Grüße
Philipp