Zufallsgenerator
Patt
ich habe eine Exceltabelle mit dem nachfolgenden Code in Bearbeitung:
Option Explicit
Sub x()
Dim wsSrc As Worksheet ' die Quell-Tabelle
Dim rngDst As Range ' der 'Ziel-Bereich' = die Selektion
Dim arZufall() As Long ' Array mit allen Zeilennummern von 1 ... lngZeilen
Dim lngZufall As Long ' eine Zufallszahl zwischen 1 ... lngZeilen
Dim lngZeilen As Long ' Anzahl der Zeilen der Quell-Tabelle
Dim intSpalten As Integer ' Anzahlder zu kopierenden Spalten
Dim i As Long ' Zähler
Randomize
Set rngDst = Selection
intSpalten = rngDst.Columns.Count
Set wsSrc = Worksheets("Daten")
lngZeilen = wsSrc.Cells(wsSrc.Rows.Count, 1).End(xlUp).Row
ReDim arZufall(1 To lngZeilen)
For i = 1 To lngZeilen
arZufall(i) = i
Next
For i = 1 To rngDst.Rows.Count
' Zufallszahl zwischen 1 und lngZeilen generieren
lngZufall = Int(lngZeilen * Rnd() + 1)
' Quellzeile ist die Zeile mit der Zeilennummer arZufall(lngZufall)
wsSrc.Cells(arZufall(lngZufall), 1).Resize(, intSpalten).Copy rngDst.Cells(1).Offset(i - _
1)
' die letzte Zeilennummer auf die gerade gezogene Zeilennummer umkopieren
arZufall(lngZufall) = arZufall(lngZeilen)
' und dann einfach die Arraygrösse erniedrigen
lngZeilen = lngZeilen - 1
Next
End Sub
Private Sub CommandButton1_Click()
Call x
End Sub
In einem Datenblatt habe ich diverse Daten in den Spalten A bis E erfasst.Die o.g. Funktion fügt nun nach Drücken von Strg+S per Zufall eine Zeile aus dem o.g. Datenblatt an die markierte Stelle ein.
Die Zufallsfunktion funktioniert hierbei leider nur Zeilenweise. Ich würde nun gerne wissen, wie ich nicht nur eine komplette Zeile auswählen lassen kann, sondern dass hierbei auch noch 2 einzelne Felder per Zufall ausgewählt werden und eingefügt werden. Ist irgendwie schwierig zu erklären.
Bsp.
Spalte A hat von Zeile 1 bis 3 folgende Werte:
Hamburg
Berlin
München
Werte von B:
100
200
300
Werte von C:
16:00
18:00
20:00
Werte von D:
18:00
20:00
22:00
Wenn ich nun Strg+S drücke wird in die zuvor markierten 4 Felder per Zufall eine aus dem zuvor genannten Zeilen ausgewählt und eingefügt.
Also: Berlin - 200 - 18:00 - 20:00
Wie muss der Code lauten, dass es bspw. Berlin - 100 - 16:00 - 22:00 auswählt.
Also die erste Spalte ist fix und bei den restlichen wird innerhalb der Liste nochmal per Zufall ausgewählt.
Hoffe ich habe mich einigermassen verständlich ausgedrückt.
Danke!
Grüße
Patt