online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon fantalight vom 22.12.2020, 09:50 Options

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

Ähnliche Themen

Aufrunden auf die nächste 10er Stelle
ml.Client  16.01.2008 - 30 Hits - 3 Antworten

Doppelte Eintäge finden und an einer anderen Stelle kopieren
Rudi81  12.06.2008 - 93 Hits - 2 Antworten

Kalender Ausfüllen mit richtigen datum VBA
pepe71  09.08.2008 - 6 Hits - 2 Antworten

Kreuz springt immer an die falsche Stelle
lothar41  27.10.2008 - 6 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 09:21:55 2026