Tipps & Tricks 29.12.2002, 15:45 Uhr

Zufällige Zeilen auswählen und kopieren

In Excel 97 habe ich eine Kundendatei. Diese beinhaltet Anrede, Namen, Vornamen, Geburtsdatum, Geschlecht u.s.w.. Aus diesen Daten (ca 1000 Zeilen) möchte ich mit einem Makro eine Zufallsauswertung (ca. 200 Stk) ziehen. Diese soll von einer Startzahl z (z.B. Zeile 33) ausgehend in Schritten x (z.B. jede 66. Zeile mit Daten markieren) markieren. Die markierten Daten sollen dann in eine Datei mit Namen Export eingefügt werden. Mit den Hilfen aus Excel 97 (Do loop usw.) bin ich nicht weit gekommen. Irgendwie fehlt es am Durchblick. Für Ihre Hilfe wäre ich dankbar.
Mit dem folgenden Makro können Sie sich diesen Wunsch erfüllen
In unserer kleinen Mustertabelle wurden 50 Zeilen ausgefüllt. Zeile1 beinhaltet die Titelfelder. Wenn Sie das Makro starten, erscheint als erstes eine Dialogbox, die von Ihnen die Startzeile wissen möchte. Hier wurde 4 eingegeben.
Die zweite Box möchte wissen, in welchen Schritten sie die Zeilen kopieren möchten. Im Beispiel wurde 6 angegeben, also jede sechste Zeile ab Zeile 4 soll übernommen werden.
Das Makro markiert dann die entsprechenden Zeilen,
und kopiert sie inkl. der Titelzeile in eine neue, leere Arbeitsmappe.
Zu guter Letzt werden Sie noch darüber informiert, wieviele Datensätze nun tatsächlich kopiert wurden
-------------------------------------
MAKRO ZUM KOPIEREN
(unbedingt " " durch Anführungszeichen ersetzen)
-------------------------------------
Sub ZeilenKopieren()
Dim total, x%, z%, mark, L As Variant
total = ActiveSheet.UsedRange.Rows.Count
z = InputBox("Startzeile angeben:")
x = InputBox("Wieviele Zeilen dazwischen?")
mark = "1:1,"
anz = 1
Do Until (z + x) >= total
mark = mark & z & ":" & z & ","
z = (z + x)
anz = anz + 1
Loop
L = Len(mark)
L = L - 1
mark = Left(mark, L)
Range(mark).Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
MsgBox "Es wurden " & anz - 1 & " von " _
& total - 1 & " Datensätzen kopiert"
End Sub
-------------------------------------



Kommentare
Es sind keine Kommentare vorhanden.