kostenloser Webspace werbefrei: lima-city


Problem bei zufallsfunktion in VBA

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    x-lord

    x-lord hat kostenlosen Webspace.

    Weiß jemand wie man bei der Rnd funktion von VBA zahlen ausklammert also z.B. eine zufällige zahl zwischen 1 und 11 außer 6 und 7.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Eine direkte Lösung dafür gibts nicht. Aber man kann es so lösen:
    Du erstellst ein Array, das bestimmte Zahlen enthält.
    Die Zufallsfunktion wählt nun einen zufälligen Index (Eintrag) in dem Array aus.
    Anschließend frägst du nur noch den Inhalt des Index ab.

    Der Code lautet dazu:



    Option Base 0
    Option Explicit
    Option Compare Binary

    Sub Zufallszahlen()

    Dim Untergrenze, Obergrenze, Ergebnis, Index As Integer
    Dim Liste(8) As Integer
    Liste(0) = 1
    Liste(1) = 2
    Liste(2) = 3
    Liste(3) = 4
    Liste(4) = 5
    Liste(5) = 8
    Liste(6) = 9
    Liste(7) = 10
    Liste(8) = 11

    Untergrenze = LBound(Liste)
    Obergrenze = UBound(Liste)

    Randomize
    Index = Int((Obergrenze - Untergrenze + 1) * Rnd + Untergrenze)

    Ergebnis = Liste(Index)
    MsgBox Str(Ergebnis)

    End Sub
  4. Autor dieses Themas

    x-lord

    x-lord hat kostenlosen Webspace.

    Danke für die schnelle hilfe die lösung ist einfach aber man muß erstmal drauf kommen.
    thx X-Lord
  5. Ich habe eine kleine Frage:
    Wäre es nicht einfacher, eine zufällige Zahl zu machen und dann mit den "verbotenen" Zahlen zu vergleichen? Dann müsste man halt eine neue Zahl machen, bis man eine gültige hat. Weil wenn man ein paar Zahlen mehr hat wird das mit dem Array recht mühsam.
  6. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.


    Ich habe eine kleine Frage:
    Wäre es nicht einfacher, eine zufällige Zahl zu machen und dann mit den "verbotenen" Zahlen zu vergleichen? Dann müsste man halt eine neue Zahl machen, bis man eine gültige hat. Weil wenn man ein paar Zahlen mehr hat wird das mit dem Array recht mühsam.


    Für einen kleinen ausgeschlossenen Bereich kann das Vergleichen mit "verbotenen" Zahlen einfacher sein, aber sobald du eine größere Menge ausschließen willst, ist diese Variante erheblich zeitaufwendiger bei der Ausführung.
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!