Thema Datum  Von Nutzer Rating
Antwort
06.05.2008 10:24:10 Falko
NotSolved
06.05.2008 17:27:49 jh
NotSolved
08.05.2008 09:34:22 Falko
NotSolved
08.05.2008 16:02:25 jh
NotSolved
09.05.2008 09:16:13 Falko
NotSolved
Blau Aw:Zufall in VBA
07.05.2008 15:06:41 Holger
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
07.05.2008 15:06:41
Views:
1002
Rating: Antwort:
  Ja
Thema:
Aw:Zufall in VBA
Hallo Falko,
hier eine Möglichkeit:
Sub zufa()
Static a() As Integer
ReDim Preserve a(23)
Dim Zufallszahl As Integer
Randomize
nocheinmal:
Do Until a(Zufallszahl) = 0 Or b = 10000
' Erstellen einer Zufallszahl
Zufallszahl = Int((23 * Rnd) + 1)
b = b + 1
Loop
If b > 9999 Then b = 0: ReDim a(23): GoTo nocheinmal
a(Zufallszahl) = 1
' Ausgabe des Wertes in einer Messagebox
MsgBox Cells(Zufallszahl + 3, 4) & " " & Cells(Zufallszahl + 3, 5)
End Sub
Gruß
Holger

Falko schrieb am 06.05.2008 10:24:10:

Hallo,

ich habe folgendes Problem bei VBA.
Möchte ein Programm starten, wo ich per Knopfdruck aus einer Liste (D4 bis D26) eine zufällige Datenangbe ausgeben lasse. Wenn ich die Excelliste eine Woche später starte, dann soll aus dem selben Bereich wieder eine Datenangabe genommen werden. Diese zufällige Angabe, darf nicht wiederholt werden, so lange bis jede Angabe einmal da war und dann sollte es von vorn beginnen.
Ausgabe soll mittels einer MsgBox erfolgen.
Bisher hab ich so programmiert, aber ich komme einfach nicht weiter, da dies sowieso ziemlich ungünstig programmiert worde.



Dim Zufallszahl As Integer

' Erstellen einer Zufallszahl
Randomize -Timer
Zufallszahl = Int((23 * Rnd) + 1)

' Ausgabe des Wertes in einer Messagebox
If Zufallszahl = "1" Then MsgBox ActiveSheet.Range("d4") & " " & ActiveSheet.Range("e4")
If Zufallszahl = "2" Then MsgBox ActiveSheet.Range("d5") & " " & ActiveSheet.Range("e5")
If Zufallszahl = "3" Then MsgBox ActiveSheet.Range("d6") & " " & ActiveSheet.Range("e6")
If Zufallszahl = "4" Then MsgBox ActiveSheet.Range("d7") & " " & ActiveSheet.Range("e7")
If Zufallszahl = "5" Then MsgBox ActiveSheet.Range("d8") & " " & ActiveSheet.Range("e8")
If Zufallszahl = "6" Then MsgBox ActiveSheet.Range("e9") & " " & ActiveSheet.Range("e9")
If Zufallszahl = "7" Then MsgBox ActiveSheet.Range("d10") & " " & ActiveSheet.Range("e10")
If Zufallszahl = "8" Then MsgBox ActiveSheet.Range("d11") & " " & ActiveSheet.Range("e11")
If Zufallszahl = "9" Then MsgBox ActiveSheet.Range("d12") & " " & ActiveSheet.Range("e12")
If Zufallszahl = "10" Then MsgBox ActiveSheet.Range("d13") & " " & ActiveSheet.Range("e13")
If Zufallszahl = "11" Then MsgBox ActiveSheet.Range("d14") & " " & ActiveSheet.Range("e14")
If Zufallszahl = "12" Then MsgBox ActiveSheet.Range("d15") & " " & ActiveSheet.Range("e15")
If Zufallszahl = "13" Then MsgBox ActiveSheet.Range("d16") & " " & ActiveSheet.Range("e16")
If Zufallszahl = "14" Then MsgBox ActiveSheet.Range("d17") & " " & ActiveSheet.Range("e17")
If Zufallszahl = "15" Then MsgBox ActiveSheet.Range("d18") & " " & ActiveSheet.Range("e18")
If Zufallszahl = "16" Then MsgBox ActiveSheet.Range("d19") & " " & ActiveSheet.Range("e19")
If Zufallszahl = "17" Then MsgBox ActiveSheet.Range("d20") & " " & ActiveSheet.Range("e20")
If Zufallszahl = "18" Then MsgBox ActiveSheet.Range("d21") & " " & ActiveSheet.Range("e21")
If Zufallszahl = "19" Then MsgBox ActiveSheet.Range("d22") & " " & ActiveSheet.Range("e22")
If Zufallszahl = "20" Then MsgBox ActiveSheet.Range("d23") & " " & ActiveSheet.Range("e23")
If Zufallszahl = "21" Then MsgBox ActiveSheet.Range("d24") & " " & ActiveSheet.Range("e24")
If Zufallszahl = "22" Then MsgBox ActiveSheet.Range("d25") & " " & ActiveSheet.Range("e25")
If Zufallszahl = "23" Then MsgBox ActiveSheet.Range("d26") & " " & ActiveSheet.Range("e26")


Wäre gut wenn mir jemand helfen könnte.

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
06.05.2008 10:24:10 Falko
NotSolved
06.05.2008 17:27:49 jh
NotSolved
08.05.2008 09:34:22 Falko
NotSolved
08.05.2008 16:02:25 jh
NotSolved
09.05.2008 09:16:13 Falko
NotSolved
Blau Aw:Zufall in VBA
07.05.2008 15:06:41 Holger
NotSolved