Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1128to1132
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
Inhaltsverzeichnis

Modifikation Zufallsgenerator

Modifikation Zufallsgenerator
MathiasW.
Hallo Excelfreunde,
ich habe ein Makro für einen Zufallsgenerator gefunden u. in eine Excel Datei eingebunden.
Dieser müsste allerdings modifiziert werden, da ich in VBA nicht wirklich fit bin, hoffe ich ihr könnt mir helfen.
Die Prozedur sieht so aus Function Zufall123() Dim Zufall As Integer, x As Integer For x = 1 To 50 Zufall = Int((21 * Rnd) + 1) Cells(2, 11).Value = Cells(Zufall, 1) Sleep 200 Next MsgBox Cells(Zufall, 1) End Function Die funktioniert auch wirklich gut, nur 2 Bedingungen müssten geändert bzw. eingefügt.
1) Der zufällige Name soll nur aus dem Bereich A2:A28 gewählt und
2) es soll vorher geprüft werden ob im Bereich G2:G28 das Wort "gebucht" steht
Bsp. im in A2 steht Name1 in G2 steht gebucht, in A10 steht Name2 in G10 steht gebucht in A18 steht Name3 in G18 steht gebucht. In den anderen Zellen im Bereich G2:G28 steht nix. Dann soll der zufällige Name nur aus den Zellen A2 & A10 & A18 ausgewählt werden.
Kennt ihr da eine Lösung?
vielen Dank im vorraus
gruss Mathias

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Der Zufallsgenerator war sicher für einen...
14.01.2010 17:18:24
Luc:-?
...bestimmten Zweck gedacht, Mathias;
üblicherweise schreibt man vor der erstmaligen Benutzung der vbFkt Rnd (hier noch vor der Schleife) erst noch Randomize, damit nicht bei jedem Durchlauf derselbe Startwert benutzt wird. Außerdem ist die udFkt überflüssig wie ein Kropf, denn das machent ja schon die xlFktt ZUFALLSZAHL und ZUFALLSBEREICH. Der Autor wollte sich wohl bloß etwas FmlFormulierungsarbeit ersparen. Mit...
=INDIREKT("A"&ZUFALLSBEREICH(2;28))
...erhältst du ein Ergebnis, das deiner 1.Forderung entspricht, wenn du das Analyse-AddIn benutzt. Anderenfalls kann man das auch über ZUFALLSZAHL lösen (vgl excelformeln.de).
Zur 2.Forderung später oder von Anderen...
Gruß Luc :-?
Anzeige
AW: Der Zufallsgenerator war sicher für einen...
14.01.2010 22:22:36
MathiasW.
Hallo ihr beiden,
erstmal vielen Dank für die Lösungsansätze, könnt ihr mir das auch ins Makro mit einbauen?
währe echt super.
gruss mathias
AW: Der Zufallsgenerator war sicher für einen...
14.01.2010 22:33:11
Josef
Hallo Matthias,
mkir entzieht sich zwar der Sinn, und ausserdem sollte der Code eher in eine Sub als in eine Funktion,
aber du wirst schon wissen was du damit vorhast.
Function Zufall123()
  Dim intRet As Integer, intIndex As Integer
  
  Randomize Timer
  
  For intIndex = 1 To 50
    Do
      intRet = Int((21 * Rnd) + 1)
    Loop While Cells(intRet, 7) <> "gebucht"
    
    Cells(2, 11).Value = Cells(intRet, 1)
    Sleep 200
  Next
  
  MsgBox Cells(intRet, 1)
End Function

Gruß Sepp

Anzeige
...mir entzieht sich zwar der Sinn...
14.01.2010 23:43:56
Luc:-?
...und genau deshalb habe ich das nicht getan, Sepp,
obwohl ich schon drauf und dran war. Solche unsinnigen udFktt mag ich weder korrigieren noch weiterverbreiten, zumal diese hier ja nicht auf Mathias' Mist gewachsen ist und er sie höchstwahrscheinlich auch gar nicht versteht. Habe was gg „Code-Kids“, obwohl die echten möglicherweise eher verstehen, was sie tun...
Gruß Luc :-?
AW: ...mir entzieht sich zwar der Sinn...
15.01.2010 10:44:00
MathiasW.
Funktioniert perfekt... :-)
vielen Dank u. schönes WE
Mathias
AW: Modifikation Zufallsgenerator
14.01.2010 19:10:00
Josef
Hallo Mathias,
Tabelle3

 ABCDEFGHI
2Name 1       Name 11
3Name 2        
4Name 3     gebucht  
5Name 4        
6Name 5     gebucht  
7Name 6        
8Name 7        
9Name 8        
10Name 9        
11Name 10     gebucht  
12Name 11     gebucht  
13Name 12     gebucht  
14Name 13        
15Name 14        
16Name 15        
17Name 16        
18Name 17        
19Name 18        
20Name 19        
21Name 20     gebucht  
22Name 21        
23Name 22        
24Name 23        
25Name 24        
26Name 25        
27Name 26        
28Name 27        

Formeln der Tabelle
ZelleFormel
I2{=INDEX(A2:A28;INDEX(KKLEINSTE(WENN(G2:G28="gebucht";ZEILE(1:27)); ZEILE(1:27)); KÜRZEN(ZUFALLSZAHL()*ZÄHLENWENN(G2:G28;"gebucht"); 0)+1))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Sepp

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige