Prozeduraufruf aber an der richtigen Stelle
Hallo,
ich habe im Netz eine passende Sub für mein Anliegen gefunden:
Sub tt()
Dim Zei As Long, N As Integer, B As String
Const Ausw As String = "23456789ABCDEFGHJKMNPQRSTUVWXYZ"
For Zei = 2 To Range("A" & Rows.Count).End(xlUp).Row
Cells(Zei, 4) = "xmas08"
For N = 1 To 15
B = Mid(Ausw, Int(Rnd() * Len(Ausw) + 1), 1)
Cells(Zei, 4) = Cells(Zei, 4) & IIf((Int(Rnd() * 2) = 0) = False, B, LCase(B))
Next N
Next Zei
End Sub
Die Sub erstellt mir Gutscheincodes mit einer Zufallszahl und dem Prefix 'xmas'. Ich konnte die Formel nur testen, indem ich in ein leeres Exelsheet einen Button integriert habe und über diesen die Formel aufrufe. Jetzt erscheint der Wert allerdings immer in D4 und ich hätte gern, dass der Wert in der aktiven Zelle (dort wor der Cursor ist) erscheint. Kann mir da jemand helfen? Gibt es auch einen Direktaufruf für so eine Sub (sprich ohne Button)? Das habe ich schon probiert: =tt() ...brachte leider eine Fehlermeldung.
Danke für Eure Hilfe!
Gruß
Torsten
Antwort schreiben
Antwort 1 von nighty vom 22.12.2020, 10:56 Options
hi all
ein beispiel
gruss nighty
Function Zufall() As String
Application.Volatile
Dim N As Integer, B As String, Ausw As String
Ausw = "23456789ABCDEFGHJKMNPQRSTUVWXYZ"
For N = 1 To 15
B = Mid(Ausw, Int(Rnd() * Len(Ausw) + 1), 1)
Zufall = Zufall & IIf((Int(Rnd() * 2) = 0) = False, B, LCase(B))
Next N
End Function
Antwort 2 von fantalight vom 22.12.2020, 11:07 Options
@nighty:
Danke für die schnelle Hilfe!
Wenn ich jetzt in die entsprechenden Felder '=Zufall()' eingebe, dann wird der Zufallcode zwar generiert, aber bei jeder neu eingefügten Zeile wird auch in den vorangegangenen die Zufallszahl geändert. Wie kann ich das verhindern? Muss ich über den Umweg 'Schaltfläche' gehen, wo mir dann bei Druck auf die Schaltfläche der Code in die aktive Zelle geschrieben wird oder gibt es auch eine andere Lösung.
Danke und Gruß
Torsten
Antwort 3 von nighty vom 22.12.2020, 11:46 Options
hi all
ein beispiel :-)
gruss nighty
Sub FunctionAufrufen()
ActiveCell = Zufall()
End Sub