Jede x Zeile markieren

Bild

Betrifft: Jede x Zeile markieren
von: Hermann
Geschrieben am: 22.04.2005 16:40:13
Hallo,
ich habe ca. 4000 Zeilen, die ich mit WURZEL(n)+1 markieren möchte
Hierzu habe ich im Archiv folgenden Code gefunden, der eigentlich gut funktioniert.


Sub Jede_zweite_Zeile_markieren()
z = ActiveSheet.UsedRange.Rows.Count
x = """"
For i = 1 To z Step 2
x = x & i & ":" & i & ","
Next i
x = Mid(x & """", 2, Len(x & """") - 3)
Range(x).Select
End Sub

Meine Fragen
1) Wenn ich nun statt step 2 z.b. step 60 eintrage, so wird Excel ( !!) komplett geschlossen ohne jegliche Fehlermeldung
2) Wie bekomme ich die 60 in mein Makro? Die 60 wird im Tabelleblatt auf D1 berechnet
Schon mal vielen Dank
Hermann
Bild

Betrifft: AW: Jede x Zeile markieren
von: Ramses
Geschrieben am: 22.04.2005 19:17:58
Hallo
1. Das kann ich nicht nachvollziehen, dass sich EXCEL einfach verabschiedet, habe allerdings auch nur XP und 2003
2. Das musst du schon etwas näher erklären.
Was berechnest du mit der Wurzel und was möchtest du dann markieren
Gruss Rainer
Bild

Betrifft: AW: Jede x Zeile markieren
von: haaken
Geschrieben am: 23.04.2005 09:26:10
Hallo Rainer,
ich möchte aus in ca. n=4000 Zeilen (berechnete Anzahl mit Einträgen(Materialnummern) aus Spalte A) eine Stichprobe=Wurzel(n)+1 ermitteln und diese Zeilen markieren, um sie dann anschließend kopieren und damit selektieren zu können.
Wenn ich nun das MAkro z.B. mit step 200 ausführe, funkst es, bei step 60 hingegen nicht mehr. Excel schließt einfach ohne Fehlermeldung. Ich kann mir denken, daß für die Variable x (Bezeichnungen der zu markierenden Zeilen) die Anzahl dann zu groß wird.
Das o.g. Prozedere ist statistisch nicht ganz korrekt. Eigentlich sollten Wurzel(n)+1 Materialien zufällig !!! und nicht im gleichen Abstand ( step 60) selektiert werden, aber dafür habe gar keinen Ansatz gefunden.
Sorry, wenn ich jetzt auf ein anderes Problem abschweife,aber ich fürchte das ich das mit dem Absturz nicht hinbekomme.
Gruß
Hermann
Bild

Betrifft: AW: Jede x Zeile markieren
von: Martin Beck
Geschrieben am: 23.04.2005 12:18:12
Hallo Hermann,
mal als Ansatz:

Sub Zufaellig_kopieren()
Dim arr()
n = Range("A65536").End(xlUp).Row
k = Round(n ^ (1 / 2)) + 1
For i = 1 To k
    Rows(Int((n - k + 1) * Rnd + 1)).Copy Destination:=Worksheets("Tabelle2").Cells(i, 1)
Next i
End Sub

Es können allerdings Zeilen mehr als einmal kopiert werden. Das kann man aber sicher noch verfeinern.
Gruß
Martin Beck
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Jede x Zeile markieren"