Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1044to1048
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

Zeilen zufällig sortieren

Zeilen zufällig sortieren
31.01.2009 11:06:51
Fritz_W
Hallo VBA-Experten,
in der Recherche habe ich folgenden Code gefunden, mit dem sich die Spalten A und B der ersten 30 Zeilen nach dem Zufallsprinzip sortieren lassen. Nun würde ich gerne den Code so verändert haben, dass sich die Sortierung auf eine variable Anzahl von Zeilen bezieht und zwar jeweils die erste X Zeilen (wobei der Wert X sich auf den aktuellen Eintrag in Zelle C1) bezieht. Steht also in C1 die Zahl 15, sollten die ersten 15 Zeilen der Spalten A und B zufällig sortiert werden.
Im Voraus besten Dank für eure Unterstützung.
mfg
Fritz

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Jetzt mit Code
31.01.2009 11:08:00
Fritz_W
Hallo VBA-Experten,
in der Recherche habe ich folgenden Code gefunden, mit dem sich die Spalten A und B der ersten 30 Zeilen nach dem Zufallsprinzip sortieren lassen. Nun würde ich gerne den Code so verändert haben, dass sich die Sortierung auf eine variable Anzahl von Zeilen bezieht und zwar jeweils die erste X Zeilen (wobei der Wert X sich auf den aktuellen Eintrag in Zelle C1) bezieht. Steht also in C1 die Zahl 15, sollten die ersten 15 Zeilen der Spalten A und B zufällig sortiert werden.
Im Voraus besten Dank für eure Unterstützung.
mfg
Fritz

Public Sub zufall()
Const strrange As String = "A1:B30"
Dim intindex As Integer, intrnd As Integer
Dim strtemp1 As String, strtemp2 As String
Dim vararray As Variant
vararray = Range(strrange)
For intindex = UBound(vararray) To 1 Step -1
Randomize Timer
intrnd = Int((intindex * Rnd) + 1)
strtemp1 = vararray(intrnd, 1)
strtemp2 = vararray(intrnd, 2)
vararray(intrnd, 1) = vararray(intindex, 1)
vararray(intrnd, 2) = vararray(intindex, 2)
vararray(intindex, 1) = strtemp1
vararray(intindex, 2) = strtemp2
Next
Range(strrange) = vararray
End Sub


Anzeige
AW: Jetzt mit Code
31.01.2009 11:11:00
Hajo_Zi
Hallo Fritz,
versuche es mal so

Public Sub zufall()
Dim intindex As Integer, intrnd As Integer
Dim strtemp1 As String, strtemp2 As String
Dim vararray As Variant
vararray = Range("A1:B" & Range("C1"))
For intindex = UBound(vararray) To 1 Step -1
Randomize Timer
intrnd = Int((intindex * Rnd) + 1)
strtemp1 = vararray(intrnd, 1)
strtemp2 = vararray(intrnd, 2)
vararray(intrnd, 1) = vararray(intindex, 1)
vararray(intrnd, 2) = vararray(intindex, 2)
vararray(intindex, 1) = strtemp1
vararray(intindex, 2) = strtemp2
Next
Range(strrange) = vararray
End Sub



Anzeige
AW: Jetzt mit Code
31.01.2009 11:22:00
Fritz_W
Hallo Hajo,
vielen Dank für deine Hilfe.
Beim Ablauf des Makros erscheint folgende Fehlermeldung.
Laufzeitfehler 1004:
Die Methode 'Rang" für das Objekt '_Global' ist fehlgeschlagen.
Gruß
Fritz
AW: Jetzt mit Code
31.01.2009 11:27:12
Hajo_Zi
Hallo Fritz,
2. Versuch

Option Explicit
Public Sub zufall()
Dim intindex As Integer, intrnd As Integer
Dim strtemp1 As String, strtemp2 As String
Dim vararray As Variant
vararray = Range("A1:B" & Range("C1"))
For intindex = UBound(vararray) To 1 Step -1
Randomize Timer
intrnd = Int((intindex * Rnd) + 1)
strtemp1 = vararray(intrnd, 1)
strtemp2 = vararray(intrnd, 2)
vararray(intrnd, 1) = vararray(intindex, 1)
vararray(intrnd, 2) = vararray(intindex, 2)
vararray(intindex, 1) = strtemp1
vararray(intindex, 2) = strtemp2
Next
Range("A1:B" & Range("C1")) = vararray
End Sub


Gruß Hajo

Anzeige
Klappt jetzt bestens
31.01.2009 11:31:00
Fritz_W
Hallo Hajo,
jetzt klappt es wie gewünscht!
Nochmals besten Dank und ein schöne WE
Gruß
Fritz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige