Kann man mit VBA eine Zufallszahl aus einem Zellbereich der mit verschiedenen Zahlen gefüllt ist programmieren?

... komplette Frage anzeigen

3 Antworten

=INDIREKT("A"&GANZZAHL(ZUFALLSZAHL()*10)+1)

oder

=INDIREKT("A"&AUFRUNDEN(ZUFALLSZAHL()*10;0))

Nenn das übrigens Zufallstreffer, weils ja eine Auswahl beinhaltet, also nicht mehr ganz zufällig ist -nur zur Unterscheidung der Probleme für die Antwortenden.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
03.02.2016, 09:19

Sorry, hab das dicke VBA überlesen. also:

Activesheet.range("S, Z").value  = Activesheet.Range("A" & Cint(Rnd() * 10))

müsste gehen, oder

Activesheet.Cells(z, s) = Activesheet.Cells(Activesheet.Cells(Cint(Rnd() * 10), 1))

kann sein, dass Du Dir das Activesheet. sparen kannst ebenso wie das .value
(sind wahrscheinlich VorgabeArgumente), kanns nicht mehr ausprobieren, muss weg.

2
Kommentar von PWolff
03.02.2016, 15:28

Es stimmt, dass der Umweg über VBA in diesem Fall überflüssig ist (es sei denn, in der Aufgabenstellung fehlen wesentliche Punkte).

Wozu der Umweg über "INDIREKT"? Ich würde

=BEREICH.VERSCHIEBEN(A1;GANZZAHL(ZUFALLSZAHL()*10);0)

verwenden.

0
Kommentar von Marceloblau01
03.02.2016, 15:33

@lamiam: bei deiner Formel für Excel wo steht da der Zellbezug? "A"& ??? wo kommt der Bezug auf A1:A10 rein? Du musst bitte verstehen das ich keine Leuchte in Excel Formeln und VBA bin ich habe zwar schon viel dazu gelernt aber manche Dinge sind mir noch rätselhaft :-) verzeih mir deshalb meine doofe Frage! Danke

0

OK, der Abschnitt bleibt konstant. Wo kommen die Zahlen her?

Der Wertebereich ist stets < x. Wie groß ist die maximale Zahl?

Du könntest dir mal Random angucken
http://www.techonthenet.com/excel/formulas/rnd.php

Antwort bewerten Vielen Dank für Deine Bewertung

Du kannst eine Zufallszahl 1-110 erzeugen (ungefähr Zahl = (rnd*110) genaue Syntax bitte nachlesen) und anhand der Zufallszahl eine Zelle wählen bsp. Zellenzahl= Tabelle1.Cells(Spalte.Zeile(Zufallszahl))

Hilft dir das?

Antwort bewerten Vielen Dank für Deine Bewertung