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

Zeilen löschen, wenn die Zelle in Spalte A leer ..

Zeilen löschen, wenn die Zelle in Spalte A leer ..
30.09.2006 13:56:21
Selma
Hallo Leute,
wenn in Zellen in Spalte A nichts steht oder der Zelleninhalt keine Zahlen beinhaltet, dann sollen diese Zeilen gelöscht werden. Mein Arbeitsblatt hat ca. 35000 Zeilen.
Wie kann ich das per VBA machen?
Vielen Dank im Voraus...
Liebe Grüße
Selma

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen, wenn die Zelle in SpA leer ..
30.09.2006 14:12:55
Daniel
Hallo
am besten machst du es auch in VBA so wie du es ohne VBA in Excel machen würdest:
- spalte A markieren
- Bearbeiten - Gehe zu - Inhalte - Nur Leerzellen
- Bearbeiten - Zellen löschen - Ganze Zeile
Wenn du dabei den Macro-Recorder mitlaufen lässt, weißt du auch, wie es in VBA geht.
Im Prinzip lässt sich das ganze auf eine Zeile verdichten:
Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Sollte es wegen der Datenmenge Speicherprobleme geben, kannst du die ganze Aktion ja in 10.000er-Blöcke oder so aufteilen.
Bei 35000 Zielen ist wahrscheinlich sogar die by-Hand-Methode schneller als eine Schleife, die jede Zelle prüft, ob sie leer ist und dann löscht.
Gruß, Daniel
Anzeige
AW: Zeilen löschen, wenn die Zelle in SpA leer ..
30.09.2006 14:42:09
Selma
Hallo Daniel,
die Leerzellen habe ich gelöscht. Ich weiß nicht wie ich jetzt die Zeilen löschen kann, wenn in Spalte A der Zellinhalt keine Zahlen hat.
Bitte um Hilfe...
Danke nochmal....
LG
SELMA
AW: Zeilen löschen, wenn die Zelle in SpA leer ..
30.09.2006 14:47:27
Daniel
Hallo,
wenn du die von mir beschriebene by-Hand-Methode ausführst, wirst du auch einen Weg finden, die mit Text gefüllten Zeilen zu löschen.
Makro-Rekroder mitlaufen lassen, und du weißt, wie du dein Makro ergänzen musst.
in diesem Fall sind dann eben 2 oder 3 Makro-Zeilen erforderlich, um die Daten zu bereinigen.
Gruß, Daniel
AW: Zeilen löschen, wenn die Zelle in Spalte A leer ..
30.09.2006 15:53:35
Jo
Hallo,
Versuchs doch mal damit
Hier ein Beispiel zum Löschen der Zeile, wenn die Zelle in Spalte A leer ist:

Sub ZeilenWeg()
Dim intCounter As Integer
For intCounter = UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Range("A" & intCounter)) Then
Rows(intCounter).Delete
End If
Next intCounter
End Sub

Ist die Zelle in Spalte A nicht leer, sondern ergibt eine Formelabfrage als Ergebnis "", dann musst Du
If IsEmpty(Range("A" & intCounter)) Then
durch
If Range("A" & intCounter) = "" Then
ersetzen.
Gruß Jo
Anzeige
AW: Zeilen löschen, wenn die Zelle in Spalte A leer ..
30.09.2006 16:32:19
Bernd
Also, wenn ich das verwende, bekomme ich einen Laufzeitfehler 424 mit dem Kommentar, dass dafür ein Objekt erforderlich ist.
Woran liegt's?
Gruss
Bernd
AW: Zeilen löschen, wenn die Zelle in Spalte A lee
30.09.2006 17:39:24
Selma
Hallo Jo,
die Zeilen mit leerem Inhalt in Spalte A sind gelöscht.
Jetzt noch eine Frage:
In Spalte A ab Zeile 2 dürfen in Zellen nur Zahlen stehen.
Ist dies nicht der Fall, dann soll die Zeile gelöscht werden.
Wie mache ich das ?
Liebe Grüße
SELMA
AW: Zeilen löschen, wenn die Zelle in Spalte A lee
30.09.2006 17:56:43
Daniel
Hallo:
So

Sub Löschen()
On Error Resume Next
With Range("A2:A65000")
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
.SpecialCells(xlCellTypeConstants, 2).EntireRow.Delete
.SpecialCells(xlCellTypeFormulas, 2).EntireRow.Delete
End With
On Error GoTo 0
End Sub

Die erste zeile löscht Leerzeilen, die weite Löscht Konstante Texte, die dritte löscht die Zeilen, inden ein über Formeln ermittelter Text steht.
Die ON-Error -Anweisung ist erforderlich, da es sonst einen Fehler geben würde, falls ein Typ mal nicht vorkommt.
Läßt sich aber alles rausfinden, wenn man mal mit "gehe zu - Inhalte" rumprobiert und den Recorder mitlaufen lässt.
Gruß, Daniel
Anzeige
AW: Zeilen löschen, wenn die Zelle in Spalte A
30.09.2006 21:24:18
Daniel
Hallo
ich habe mal beide Versionen ausprobiert und auf Performance getestet (mit c.a. 20000 Zeilen).
Dabei ist mir folgendes aufgefallen:
- Damit die Schleife auch schnell arbeitet, muß der Bildschirm mit Application.Screenupdating = false ausgeschaltet werden. sonst wirds indiskutabel langsam.
- Die Geschwindigkeit in der Schleife ist allein davon abhängig, wieviele Daten gelöscht werden müssen. je mehr löschungen, um so langsamer
- Die Geschwindigkeit der "specialCells"-Methode ist im gegensatz dazu davon ahhängig, wie die zu löschenden Daten verteilt sind.
Sind die Daten stark vereinzelt, kann es sogar passieren, daß die Funktion versagt und alles gelöscht wird (ist mir bei 40000 Zeilen passiert).
Sind die Daten dagegen vorher nach zu löschenden und nicht zu löschenden sortiert worden, geht der Löschvorgang in extrem schnell (bei gleicher Datenmenge von 18000 Zeilen), diese Methode hat auch bei 40000 Zeilen funktioniert
Diesen unterschied sieht man am im Vergelich zwischen "Test gleichmäßig" und "Test geblockt"
Die schnelleste Methode währe daher:
-Sortieren
-Löschen mit specialcells
-ggf zurücksortieren
https://www.herber.de/bbs/user/37108.zip
Wer will kanns in dieser Datei mal ausprobieren:
1 in der Combobox Szenario auswählen und
2 per Button die Löschmethode auswählen
Die Laufzeit ab Start wird angezeigt
Gruß, Daniel
Anzeige
AW: Zeilen löschen, wenn die Zelle in Spalte A
03.10.2006 17:42:21
Selma
Super....
Vielen Dank...
LG
Selma

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige