Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1216to1220
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
Zeilen durch "Zufall" löschen
Careem21
Hallo zusammen,
ich suche eine Art "Zufallsgenerator", der eine Anzahl "x" an Zellen in einer .xls Datei löscht.
Beim Klick auf einen OptionButton solll man gefragt werden, wieviel Zeilen, mit dem Schlagwort "y" in Spalte "A" übrig bleiben sollen.
D.h.:
Ich habe eine .xls-Datei mit den Spalten "Name", "Kosten", "Kommentar". In Der .xls sind ca. 400 Zeilen Datensätze. Durch Zufall sollen nun z.b. nur noch 100 Zeilen übrig bleiben (also -300), bei denen der Name "Hans" vorkommt.
Ich hoffe das ist einigermaßen verständlich :)
Ich kann es leider nicht genauer beschreiben.
Ich bin dankbar für jede Hilfe!
Danke und Gruß
Careem

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

Betreff
Benutzer
Anzeige
AW: Zeilen durch "Zufall" löschen
16.06.2011 04:20:50
Mustafa
Hallo nochmal,
oder wenn die Zeilen nicht von unten nach oben sondern wirklich per zufall gelöscht werden sollen dann so :
Private Sub CommandButton1_Click() Dim lngLetzte As Long, lngAnzahl As Long, lngEingabe As Long, lngZähler As Long Dim Bereich As Range Application.ScreenUpdating = False lngLetzte = Cells(Rows.Count, 1).End(xlUp).Row Set Bereich = Range(Cells(1, 1), Cells(lngLetzte, 1)) lngEingabe = InputBox("Wieviele Einträge sollen bleiben?", "Anzahl Eingeben") For lngZähler = lngLetzte To 1 Step -1 If lngZähler = lngEingabe Then Exit For lngAnzahl = Int(Rnd() * lngLetzte + 2) Cells(lngAnzahl, 1).EntireRow.Delete lngLetzte = lngLetzte - 1 Next Application.ScreenUpdating = True End Sub Rückmeldung obs Hilft wäre nett.
Gruß aus der Domstadt Köln.
Anzeige
kleiner Hinweis ! (Randomize)
16.06.2011 09:26:44
Matthias
Hallo
Das hat nichts mit Zufall zu tun, sondern ist immer gleich
Mach mal Folgendes:
Öffne Deine Datei, starte den Code und lass 2 Einträge stehen:
 ABC
1Name :Kosten :Kommentar :
2Kaufmann670vwx
3Kaufmann652stu


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Jetzt Datei schließen ( ohne speichern ! )
Nun das Ganze nochmal:
Datei öffnen, 2 Einträge stehen lassen. Was passiert?
Es sind exakt die gleichen Zeilen die stehen bleiben !
Würdest Du 6 Zeilen stehen lassen, wäre das Ergebnis immer so:
 ABC
1Name :Kosten :Kommentar :
2Kaufmann670vwx
3Kaufmann37abc
4Kaufmann343jkl
5Kaufmann881vwx
6Kaufmann652stu
7Kaufmann647jkl


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Das liegt daran, das Du ohne Randomize arbeitest.


Desweiteren ist mir Folgendes aufgefallen:
Wenn Du nicht zwingend überprüfst das lngEingabe maximal kleiner/gleich lngLetzte sein darf,
werden bei einer Eingabe von z.B. [ 501 ] alle Daten gelöscht
Das muss also auch berücksichtigt werden. Auch ein Klick auf Abbrechen, beim Zeigen der Inputbox bzw. bei Eingabe von Text bricht VBA mit einer Fehlermeldung ab.
Abhilfe schafft dies: (wobei lngEingabe nicht als Long deklariert ist, sondern als String)
If StrPtr(lngEingabe) = 0 Then Exit Sub     'Abbrechen gedrückt
If Not IsNumeric(lngEingabe) Then Exit Sub  'keine Zahl eingegeben
If IsDate(lngEingabe) Then Exit Sub         'Datum eingegeben
If lngEingabe > lngLetzte Then Exit Sub     'mehr Zeilen, als vorhanden
If lngLetzte 

Zitat:
Beim Klick auf einen OptionButton solll man gefragt werden, wieviel Zeilen, mit dem Schlagwort "y" in Spalte "A" übrig bleiben sollen.
... dann müsste ja also auch noch der Name aus Spalte(A) mit in den Code eingebunden werden
Denn da steht sicher nicht überall der "Kaufmann" drin ... ;o)
Userbild
Anzeige
AW: kleiner Hinweis ! (Randomize)
16.06.2011 22:57:23
Mustafa
Hallo Matthias,
du hast ja recht mit deinen ganzen Einwänden, aber ohne eine Aussagekräftige Mappe habe ich nur das Grundgerüst für einen Beispielcode geliefert.
Zitat :
Beim Klick auf einen OptionButton solll man gefragt werden, wieviel Zeilen, mit dem Schlagwort "y" in Spalte "A" übrig bleiben sollen.
Dann müssten es mindestens zwei InputBox'en sein um auch das Schlagwort einzugeben bei einer Liste von mehreren Namen, oder woher soll der Code wissen welches Schlagwort gelöscht werden soll.
Gruß aus der Domstadt Köln.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige