1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Kennwörter in Excel generieren

Dieses Thema im Forum "Visual Basic / VBA" wurde erstellt von anjaw, 8 Aug. 2016.

  1. anjaw

    anjaw Junger Padawan

    Dabei seit:
    30 Nov. 2004
    Beiträge:
    1.378
    Danke erhalten:
    85
    Ort:
    Irgendwo in Bayern
    Hallo,

    ich will in Excel Kennwörter generieren. Diese sollen Zahlen (1-9), Buchstaben und Sonderzeichen enthalten.
    Wie ihr schon bei den Zahlen seht sollen nicht alle Zeichen enthalten sein.

    Die Länge soll erstmal 8stellig sein. Kann sich aber erhöhen.

    Wer kann mir hier einen Denkanstoß geben?

    Gruß
    Anja
     
  2. Amari

    Amari Administrator
    Mitarbeiter

    Dabei seit:
    16 Apr. 2006
    Beiträge:
    6.047
    Danke erhalten:
    345
    Mit der Funktion RANDBETWEEN(bottom,top) kannst du dir zufallszahlen generieren lassen. Mit der Funktion CHAR() kannst du diese dann auch in Buchstaben umwandeln...sprich CHAR(RANDBETWEEN(65,90))

    Für Passwörter ist das halt nicht wirklich zufällig, da ich jetzt nicht wüsste, wie du so die positionen der Zahlen und Zeichen zufällig ändern kannst. Das ginge dafür dann mit VB.
     
  3. anjaw

    anjaw Junger Padawan

    Dabei seit:
    30 Nov. 2004
    Beiträge:
    1.378
    Danke erhalten:
    85
    Ort:
    Irgendwo in Bayern
    Ich hatte es mit =WENN(ZUFALLSZAHL()<0,33;ABRUNDEN(ZUFALLSZAHL()*10;0);ZEICHEN(RUNDEN(ZUFALLSZAHL()*26+(ZUFALLSZAHL()>0,66)*32+64,5;0))) probiert.

    Da kann ich aber leider bestimmte Buchstaben... auslassen.

    Wie würde das in VBA aussehen?
     
  4. Amari

    Amari Administrator
    Mitarbeiter

    Dabei seit:
    16 Apr. 2006
    Beiträge:
    6.047
    Danke erhalten:
    345
    Ich denke die Seite ist ganz gut als Erklärung: How to generate random character strings in a range in Excel?

    Dort steht auch ein VBA Beispiel, das sich denke ich ganz gut für dich anpassen lässt.

    Code:
    Public Function RandomizeF(length as Integer)
    Dim Rand As String
    Application.Volatile
    Do
        i = i + 1
        Randomize
        Rand = Rand & Chr(Int((85) * Rnd + 38))
    Loop Until i = length
    RandomizeF = Rand
    End Function
    Wenn du Zeichen ausschließen willst, entweder den Bereich indem du Zufallszahlen generierst verändern, oder mit einer if Bedingung zeichen abfangen die nicht in deinem set sind.
     
  5. anjaw

    anjaw Junger Padawan

    Dabei seit:
    30 Nov. 2004
    Beiträge:
    1.378
    Danke erhalten:
    85
    Ort:
    Irgendwo in Bayern
    Danke erstmal für die Ausführung. Ich werde es morgen mal testen und mich dann melden, wenn ich noch Fragen habe.
    --- Doppelpost zusammengefügt, 9 Aug. 2016, Original Post Datum: 8 Aug. 2016 ---
    Es hat mit dem VBA-Script funktioniert.
    Habe auch mit einer if-Schleife nach einigen Widrigkeiten alle unerwünschten Zeichen über den jeweiligen ASCII-Wert ausgeschlossen.
     

Diese Seite empfehlen