Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige