Microsoft Excel

Herbers Excel/VBA-Archiv

Prog. zur zufallszahl

Betrifft: Prog. zur zufallszahl von: Heinz Müller
Geschrieben am: 19.12.2007 16:49:35

Hallo Leute,

ich habe folgendes Problem, ich hätte gerne aus 2 verschieden Tabellen eine Zufällige ausgabe einer Produktnummer.

Aber am besten Ihr schaut euch mal die Datei an.

Ich hoffe mir kann geholfen werden, vielen Dank schon im vorraus !

https://www.herber.de/bbs/user/48545.xls

  

Betrifft: AW: Prog. zur zufallszahl von: Renee
Geschrieben am: 19.12.2007 16:59:08

Mazwara Heinz,

So:

Zelle B3  =INDEX(Tabelle2!B4:B63;GANZZAHL(ZUFALLSZAHL()*ANZAHL(Tabelle2!B4:B63)+1))
Zelle B4 =INDEX(Tabelle2!E4:E63;GANZZAHL(ZUFALLSZAHL()*ANZAHL(Tabelle2!E4:E63)+1))


Mit F9 wechselt die Produktenummer.

GreetZ Renee


  

Betrifft: AW: Prog. zur zufallszahl von: Heinz Müller
Geschrieben am: 19.12.2007 17:07:48

Das ja schonmal sehr gut, danke dir !!

Was mit aber noch besser gefallen würde wenn das ganze in einem Makro gefasst wird! Das würde von der Handhabung für mich besser sein !


  

Betrifft: AW: Prog. zur zufallszahl von: René
Geschrieben am: 19.12.2007 17:05:23

Hi

Vielleicht hilft dir das kurze Makro.
Ich denke aber, die Experten machen das noch besser.

Gruß René


https://www.herber.de/bbs/user/48546.xls


  

Betrifft: AW: Prog. zur zufallszahl von: Heinz Müller
Geschrieben am: 19.12.2007 17:30:31

Dein Makro ist schon nicht schlecht, blos was blöde ist ich habe auch solche Tabellen:

1 Eier
2 Milch
5 Sahne
6 Kuchen
7 Dose
57 Eis
34 Milch
23 Brei

Was mache ich dann ?


  

Betrifft: AW: Prog. zur zufallszahl von: Daniel
Geschrieben am: 19.12.2007 17:06:21

Hi
das könntest du mit dieser Formel machen:
Für Klasse 1
=INDEX(Tabelle2!B4:B63;GANZZAHL(ANZAHL(Tabelle2!B4:B63)*ZUFALLSZAHL())+1)
Für Klasse 2
=INDEX(Tabelle2!E4:E63;GANZZAHL(ANZAHL(Tabelle2!E4:E63)*ZUFALLSZAHL())+1)

neue Werte gibts immer, wenn du auf F9 drückst, oder sonst im Blatt was geändert werden muss.

Zellebereich ist für Klasse1, für Klasse2 halt entsprechend ändern


  

Betrifft: AW: Prog. zur zufallszahl von: Heinz Müller
Geschrieben am: 19.12.2007 17:14:18

Perfekt Leute hab jetzt alles was ich brauch

Danke für die schnelle Hilfe


  

Betrifft: AW: Prog. zur zufallszahl von: Daniel
Geschrieben am: 19.12.2007 17:18:13

Hi
als Marko siehts dann so aus:

Sub Zufall()
Range("B3").FormulaLocal = _
      "=INDEX(Tabelle2!B4:B63;GANZZAHL(ANZAHL(Tabelle2!B4:B63)*ZUFALLSZAHL())+1)"
Range("B4").FormulaLocal = _
      "=INDEX(Tabelle2!E4:E63;GANZZAHL(ANZAHL(Tabelle2!E4:E63)*ZUFALLSZAHL())+1)"
Range("B3:B4").Formula = Range("B3:B4").Value
End Sub



Gruß, Daniel


  

Betrifft: AW: Prog. zur zufallszahl von: Heinz Müller
Geschrieben am: 19.12.2007 17:36:58

Das Makro ist schon nicht schlecht, blos was blöde ist ich habe auch solche Tabellen:

1 Eier
2 Milch
5 Sahne
6 Kuchen
7 Dose
57 Eis
34 Milch
23 Brei

Was mache ich dann ?


  

Betrifft: AW: Prog. zur zufallszahl von: Heinz Müller
Geschrieben am: 19.12.2007 17:38:01

Dein Makro ist schon nicht schlecht, blos was blöde ist ich habe auch solche Tabellen:

1 Eier
2 Milch
5 Sahne
6 Kuchen
7 Dose
57 Eis
34 Milch
23 Brei

Was mache ich dann ?


  

Betrifft: AW: Prog. zur zufallszahl von: Erich G.
Geschrieben am: 19.12.2007 18:06:14

Hallo Heinz,
probier mal

Option Explicit

Sub ZufallszahlErzeugen()
   Dim lngB As Long, lngE As Long

   Sheets(1).Activate
   With Sheets("Tabelle2")
      lngB = .Cells(Rows.Count, 2).End(xlUp).Row - 4
      lngE = .Cells(Rows.Count, 5).End(xlUp).Row - 4

      Range("B3") = .Cells(Int(CLng(lngB * Rnd)) + 4, 2)
      Range("B4") = .Cells(Int(CLng(lngE * Rnd)) + 4, 5)
   End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Prog. zur zufallszahl von: Heinz Müller
Geschrieben am: 19.12.2007 18:24:11

Also Program Funktioniert PErfekt jetzt muss ich nur noch wissen wo ich das Makro ändern muss, wenn ich eine Tabelle in einer anderen Spalte habe ??

Also vielen Dank jungs/mädels ersmal !!!


  

Betrifft: AW: Prog. zur zufallszahl von: Erich G.
Geschrieben am: 19.12.2007 19:30:25

Hallo Heinz,
in der Prozedur sind die Spalten mit ihren Nummern bezeichnet: 2 steht für Spalte B, 5 für Spalte E.
Die jeweilige Spalte kommt zwei Mal vor, nach einem Komma und vor einer Klammer zu ")".
Nur hier müsstest du bei Änderung der Spalte etwas ändern.

Dabei ist es egal, welche der beiden Prozeduren du verwendest.
Die mit Randomize ist besser - das fehlte nämlich bei der anderen.

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Prog. zur zufallszahl von: Heinz Müller
Geschrieben am: 19.12.2007 20:00:48

Vielen Dank haut hin !!

Was ist den Randomize ?


  

Betrifft: AW: Prog. zur zufallszahl von: Erich G.
Geschrieben am: 19.12.2007 20:23:29

Hallo Heinz,
hast du noch nicht in der VBA-Hilfe nachgesehen?
Dazu brauchst du nur mit der Maus in das Wort Randomize zu klicken und die F1-Taste zu drücken.

Wenn du das tust, kannst du u.a. lesen:
Wird Randomize nicht verwendet, dann verwendet die Rnd-Funktion (ohne Argumente) dieselbe Zahl
als Startwert, wenn sie das erste Mal aufgerufen wird. Danach verwendet sie die zuletzt erzeugte Zahl
als Startwert.

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Prog. zur zufallszahl von: Heinz Müller
Geschrieben am: 19.12.2007 20:52:44

Hey man kann ja net alles wissen :-)

Ich danke dir für deine Hilfe !


  

Betrifft: AW: Prog. zur zufallszahl von: Erich G.
Geschrieben am: 19.12.2007 18:20:05

Hallo Heinz,
noch 'ne Version:

Sub ZufallszahlErzeugen()
   Dim lngB As Long

   Sheets(1).Activate
   Randomize
   With Sheets("Tabelle2")
      lngB = .Cells(Rows.Count, 2).End(xlUp).Row - 3
      Range("B3") = .Cells(Int(Int(lngB * Rnd)) + 4, 2)
      lngB = .Cells(Rows.Count, 5).End(xlUp).Row - 3
      Range("B4") = .Cells(Int(Int(lngB * Rnd)) + 4, 5)
   End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


 

Beiträge aus den Excel-Beispielen zum Thema "Prog. zur zufallszahl"