VBA Zufallauwahl eingrenzen
31.01.2018 18:41:29
Pusterhofer
Ich bin mal wieder an meine VBA Grenzen gestoßen und auf der Suche nach Hilfe. Im Moment versuche ich ein Makro zu schreiben, das mir aus meiner Datei mit 378 Reihen zufällig 10x 4 Reihen ausgibt. Das funktioniert auch soweit.
Das Programm kopiert mir eine Zufällige Reihe von A bis F:
Range("A" & i & ": F" & i).Copy
In der Spalte A, B, C sind die X, Y, Z Koordinaten eines Punktes hinterlegt in den Reihen D-F dazugehörige Werte.
Jetzt mein Problem: gibt es eine Möglichkeit, dass pro 4 Reihen keine 2 mal vorkommt und dass _ die 4 zufällig gewählten Reihen/Punkte in jeder Richtung mindesten 1m Abstand zu sich haben. Würde mich über jeden Input freuen.
Sub Zufall4erPack()
Dim ZZahl, a As Long, b As Long, j As Long, k As Long
j = 378 'Anzahl der Zellen'
k = 380 'Kopieren Ausgabe
Set wsAktuell = ThisWorkbook.Worksheets("Tabelle1")
For a = 1 To 10
For b = 1 To 4
Randomize
ZZahl1 = Int((j * Rnd) + 1) 'Zufallszahl wird ermittelt
zzahl2 = ZZahl1 + 2 'Zur Zufallszahl wird 2 addiert, da es ab 2 Reihe _
funktionieren soll
i = zzahl2
Range("H" & k).Value = i 'Gibt gewählte Zelle aus als Kontrolle'
Range("A" & i & ": F" & i).Copy
Range("A" & k).PasteSpecial xlPasteValues
k = k + 1
Next b
k = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row + 2
Next a
End Sub