Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
536to540
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
536to540
536to540
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wer kann mir VB Code umschreiben? :-)

Wer kann mir VB Code umschreiben? :-)
22.12.2004 20:53:36
Martin
Hallo,
hab leider absolut keine ahnung von VB Makro Programmierung und es dauert sehr lange wenn ich das alles mit der Excel Hilfe erlernen muss.
Könnte mir evtl. jemand den unten stehenden Code so umwandeln, das nicht die Zeilen(Ax) zufallsmäßig selektiert wird, sondern die erste Spalte?
-Was muss ich beachten wenn ich evtl. später eine andere Spalte benutzen muss?
-Wie kann ich die Zeile: "'MsgBox r.Address(0, 0), , r.Count" so verändern, dass
sie mir nicht die Zellenindizies, sondern den Inhalt, evtl. schön formatiert ausgibt? Oder wie kann ich die gefundenen Werte in einer anderen Matrix in der Tabelle schön formatiert ausgeben?
Im Endeffekt soll aus einer Liste von Daten 16 zufallsmäßig ausgesucht werden!
Auf jeden Fall schonmal vielen vielen Dank für den der sich darum kümmert! :-)
Gruss Martin.

Code:

Private Sub CommandButton1_Click()
Const AnzTermine As Integer = 16
Dim i&, lngZufall&, j&
Dim arrZufall() As Long, arrZeilen() As Long
Dim r As Range
i = Cells(Rows.Count, 1).End(xlUp).Row
ReDim arrZufall(AnzTermine - 1)
ReDim arrZeilen(i - 1)
Randomize
For j = 1 To i: arrZeilen(j - 1) = j: Next j
For j = 1 To AnzTermine
lngZufall = Int((i - j + 1) * Rnd + 1)
arrZufall(j - 1) = arrZeilen(lngZufall - 1)
arrZeilen(lngZufall - 1) = arrZeilen(i - j)
Next j
Set r = Cells(arrZufall(0), 1)
For j = 1 To AnzTermine - 1
Set r = Application.Union(r, Cells(arrZufall(j), 1))
Next j
'MsgBox r.Address(0, 0), , r.Count
r.Select
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wer kann mir VB Code umschreiben? :-)
22.12.2004 21:09:33
Josef Ehrensberger
Hallo Martin!
Hast du dir im alten Thread meinen Code angesehen bzw. probiert?

Gruß Sepp
AW: Wer kann mir VB Code umschreiben? :-)
22.12.2004 22:29:02
Martin
Hey Sepp,
ja klar... da war ja noch etwas! :-) Danke, genau das habe ich gesucht...
aber wenn ich aus den Spalten lese und die Ausgabe in Zeilen haben möchte macht der
mir ne Matrix und der kopiert mir jedes Datum mehrfach in die tabelle!?
Sehe ich das richtig, das die Ausgabe direkt sortiert ist?
Gruss

Sub test()
Dim rng As Range
Dim rngU As Range
Dim n As Integer
Set rng = Range("A1:IK1")
n = rng.Count
Set rngU = rng(Int(Rnd * n) + 1)
Do
Set rngU = Union(rng(Int(Rnd * n) + 1), rngU)
Loop While rngU.Count < 16
rngU.Copy [B8:B21]
End Sub

Ausgabe:
01.03.2005 12.03.2005 . . .
01.03.2005 12.03.2005 . . .
. .
. .
. .
Anzeige
AW: Wer kann mir VB Code umschreiben? :-)
22.12.2004 22:41:01
Josef Ehrensberger
Hallo Martin!
Dann so:

Sub test()
Dim rng As Range
Dim rngU As Range
Dim n As Integer
Set rng = Range("A1:IK1")
n = rng.Count
Set rngU = rng(1, Int(Rnd * n) + 1)
Do
Set rngU = Union(rng(1, Int(Rnd * n) + 1), rngU)
Loop While rngU.Count < 16
rngU.Copy
[B8].PasteSpecial Transpose:=True
Application.CutCopyMode = False
End Sub

Code eingefügt mit: Excel Code Jeanie
Die sortierung ergibt sich aus dem Aufbau des Codes automatisch!
Gruß Sepp
Anzeige
AW: Wer kann mir VB Code umschreiben? :-)
22.12.2004 22:45:00
Martin
Wow... super... danke Dir auf jeden Fall!
Gute n8! :-)
Martin.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige