Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1540to1544
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Zufallszahlen im Zellbereich, ohne doppelte
11.02.2017 15:53:32
Dieter(Drummer)
Hallo Spezialisten,
mit diesem Makro sollen im markierten Zellbereich 20 ganzahlige Zufallsszahlen, ohne doppelte (fehlt auch noch) erzeugt werden. Ich bekomme einen Fehlerhinweis:
"Zelle = Variable nicht definiert!"
Jetziger Code:
  • 
    Sub ZufallszahlenAnlegen()
    Dim zelle As Range
    For Each zelle In Selection
     Zelle.Value = Rnd * 20 'Fehlerhinweis: Zelle = Variable nicht definiert!
    Next zelle
    End Sub
    

  • Wie müsste die DIM Anweisung lauten und wie ist der richtige Code, damit auch keine doppelten Ganzahlen entstehen?
    Gruß und vorab Danke für Hilfe.
    Dieter(Drummer)

    16
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: noch so ein super-Code von snb
    11.02.2017 16:40:12
    snb
    Hallo,
    von snb:
    
    Sub iRnd()
    'eindeutige zufällig verteilte ganze Zahlen 1-n
    [a1:a20] = "=rand()"
    [a1:a20] = [index(rank(a1:a20,a1:a20),)]
    End Sub
    
    mfg
    AW: Danke Fennek ...
    11.02.2017 16:52:12
    Dieter(Drummer)
    ... Code von snb funktioniert.
    Klärt wohl nicht meine Fragen, aber ich komme damit klar.
    Gruß und Danke, Dieter(Drummer)
    AW: Wie muss der Code lauten, wenn in 13 Zellen ..
    11.02.2017 17:07:19
    Dieter(Drummer)
    Hallo Fennek,
    ... wie muss der Code lauten (von snb), wenn in 13 Zellen eine nicht doppelte Zufallszahl von 1 - 20 eingetragen werden soll?
    Mit der Bitte um Hilfe.
    Gruß, Dieter(Drummer)
    so?
    12.02.2017 16:48:10
    Michael
    Hi,
    Sub iRnd()
    'eindeutige zufällig verteilte ganze Zahlen 1-n
    [a1:a20] = "=rand()"
    '[a1:a20] = [index(rank(a1:a20,a1:a20),)]
    [b1:b13] = [index(rank(a1:a20,a1:a20),)]
    End Sub
    
    Wenn ich das richtig sehe, wirft der Code aus dem Link (von Robert) ja auch Doppelte aus...
    Gruß,
    Michael
    Anzeige
    AW: Wen es auch interessiert, habe Lösung ...
    11.02.2017 17:27:35
    Dieter(Drummer)
    Hallo Fennek,
    ... im Internet gefunden, die gut funktioniert:
    Aus: "http://www.ecotronics.ch/vba/codebeispiele.asp?code_id=1174420299&fldsprache=VBA+Excel&fldTitle=In+ausgew%E4hlten+Zellen+Zufallszahlen+aus+einem+bestimmten+Bereich+erzeugen"
    Code:
    Sub ZufallszahlenInSelection()
    Dim untergrenze As Double
    Dim obergrenze As Double
    Dim anzStellen As Integer
    If MsgBox("Möchten Sie im markierten Bereich Zufallszahlen erstellen?", vbYesNo) = vbYes Then
    untergrenze = InputBox("Untergrenze?")
    obergrenze = InputBox("Obergrenze?")
    anzStellen = InputBox("Anzahl Stellen für Rundung")
    Call ZufallszahlenGenerieren(Selection, untergrenze, obergrenze, anzStellen)
    End If
    End Sub
    

    Danke für die Hilfe und einen schönen Abend.
    Gruß, Dieter(Drummer)
    Anzeige
    ...habe keine ! Lösung ...Function fehlt.....oW
    11.02.2017 17:36:23
    robert
    Eher 'ne weitere SubProz, ...
    11.02.2017 18:51:53
    Luc:-?
    …robert (& Dieter),
    nämlich ZufallszahlenGenerieren. Aber die wäre ggf auch wenig interessant, falls darin nicht auch jede Zahl (sicher!) einfach (nicht mehrfach!) erzeugt würde.
    Ansonsten gibt's dafür garantiert auch eine FmlLösung auf excelformeln.de! WF hatte hier mal eine solche Lösung gepostet…
    Im Prinzip muss ja nur ein durchgehender RANG für die generierten Zufallszahlen bestimmt wdn, falls die ganz­zahlig sein sollen. Ein solcher kann über eine Hilfsspalte mit Anfügen der ZeilenNr als Dezimalen ohne Wieder­holung fest­gelegt wdn (oder man nutzt meine UDF VRank - im Archiv - mit entsprd Argumen­tierung dafür, ggf auch ohne Hilfszellen, weil sie nicht auf Zell­Bereiche - wie die RANG-Fktt - angewiesen ist).
    Gruß, Luc :-?
    Besser informiert mit …
    Anzeige
    AW: Danke Luc :-? für Info. Gruß und owT.
    11.02.2017 19:55:38
    Dieter(Drummer)
    AW: Ich staune über deine Hilfe ... Danke ...
    12.02.2017 09:07:32
    Dieter(Drummer)
    ... aber man lernt ja nie aus.
    Gruß, Dieter(Drummer)
    Das sind 2 SubProzeduren, robert! ;-) orT
    12.02.2017 13:56:07
    Luc:-?
    Schönen Sonntag, robert,
    muss gleich weg (SchwägerinnenGeburtstag).
    Gruß, Luc :-?
    Fehler darum:
    11.02.2017 18:44:20
    Michael
    Hi Dieter,
    genau dafür hat man ja Option explicit: Du schreibst zelle einmal klein, einmal groß: definiert ist sie halt klein.
    Gruß,
    M.
    Anzeige
    AW: Danke Michael für Hinweis. Gruß owT
    11.02.2017 18:51:01
    Dieter(Drummer)
    sorry, war Mist! Gruß owT
    12.02.2017 14:58:04
    Michael
    Ä, ä, Michael, VBA-VariablenNamen sind ...
    11.02.2017 18:57:29
    Luc:-?
    NICHT case-sensitiv! Wird ein Name klein deklariert, wird er im folgd Pgm (und mitunter auch darüber hinaus!) stets wieder auf klein gestellt und umgekehrt. Das ist nur ein VBE-Service!
    In anderen Sprachen kann das durchaus anders sein, zB in JavaScript.
    Gruß, Luc :-?
    danke für die Richtigstellung,
    12.02.2017 14:59:20
    Michael
    Luc:-?
    und Grüße,
    Michael

    306 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige