Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1504to1508
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
Inhaltsverzeichnis

Zeile löschen wenn in Spalte A das Wort "Summe"

Zeile löschen wenn in Spalte A das Wort "Summe"
03.08.2016 13:44:38
Sascha

Hallo allerseits,
ich brauche mal wieder eure Hilfe bei der Erstellung eines Makros.
Ziel ist es das er in einer Tabelle eine Zeile komplett löscht, wenn das Wort "Summe" in Spalte A auftaucht.
Ergänzend soll die Zeile genau dadrunter auch mit gelöscht werden.
Im Screenshot sieht man ein Beispiel:
Userbild
Habt ihr eine Idee?
Vielen Dank im Voraus .
Gruß
Sascha

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile löschen wenn in Spalte A das Wort "Summe"
03.08.2016 13:53:14
Crazy Tom
Hi
das habe ich so getestet
Sub test()
Dim lngLetzte As Long
Dim i As Long
lngLetzte = Cells(Rows.Count, 1).End(xlUp).Row
For i = lngLetzte To 1 Step -1
If Cells(i, 1).Value = "Summe" Then
Rows(i + 1).Delete
Rows(i).Delete
End If
Next
End Sub

MfG Tom
@Tom
03.08.2016 13:59:10
RPP63
Bei großen Listen geht Dein funktionierendes Makro in die Knie.
Zeilenweises Löschen ist extrem langsam.
Meins geht ratzfatz.
Gruß Ralf
AW: @Tom
03.08.2016 14:05:10
Crazy Tom
Hi Ralf
bei meinen getesteten 40 Zeilen gings auch fix ;-)
aber deine Lösung werde ich mir mal im Gedächtnis behalten
MfG Tom
ps. mal schauen ob der Beitrag in die richtige Reihenfolge kommt
Anzeige
AW: Zeile löschen wenn in Spalte A das Wort "Summe"
03.08.2016 13:57:15
RPP63
Moin!
Filtere Spalte A nach Summe
markiere ab der ersten sichtbaren Zeile unter der Überschrift
lösche die Zeilen
Als Makro:
Sub WegDamit()
Cells(1).CurrentRegion.AutoFilter 1, "Summe"
Range("2:1000").SpecialCells(xlCellTypeVisible).EntireRow.Delete
Cells(1).CurrentRegion.AutoFilter
End Sub
Gruß Ralf
Zeile löschen wenn in Spalte A das Wort "Summe"
03.08.2016 14:08:29
Sascha
Hallo,
vielen Dank für eure schnelle Hilfe.
Es hat super funktioniert.
Das geht so schnell, das man gefühlt schon die Antwort bekommt, bevor man es abschickt :).
Gruß
Sascha
P.S. Sorry fürs doppelte Hochladen,bin zweimal auf den knopf gekommen.
Anzeige
AW: Zeile löschen wenn ... mit Duplikate entfernen
03.08.2016 14:24:28
Daniel
Hi
Auch der Autofilter kann bei sehr großen Datenmengen in die Knie gehen.
beim Löschen von Zeilen in großen Datenmengen ohne Sortieren sollte man das Duplikate-Entfernen verwenden.
Das ist sehr schnell und funktioniert auch bei größten Datenmengen.
hierzu schreibt man in eine Hilffspalte am Tabellenende eine Formel, welche alle Zeilen die gelöscht werden sollen mit 0 kennzeichnet und alle die Stehen bleiben müssen mit der Zeilennummer.
in die Überschriftenzeile kommt ebenfalls die 0
dann wendet man auf die ganze Tabelle das Daten-Datentools-Duplikate Entfernen an, mit der Hilfsspalte als Kriterium.
geht natürlich auch als Makro:
Sub test()
With ActiveSheet.UsedRange
With .Columns(.Columns.Count + 1)
.Select
With .Offset(1, 0).Resize(.Rows.Count - 1, 1)
.FormulaR1C1 = "=If(Or(RC1=""Summe"",R[-1]C1=""Summe""),0,Row())"
End With
.Cells(1, 1).Value = 0
.EntireRow.RemoveDuplicates .Column, xlNo
.ClearContents
End With
End With
End Sub
Gruß Daniel
Anzeige
AW: Zeile löschen wenn in Spalte A das Wort "Summe"
03.08.2016 14:07:51
Gerd L
Hallo,
das Makro wird nicht dauernd laufen sollen. Zudem sind bei größeren Tabellen die
Restriktionen der SpecialCells-Methode zu beachten.
Sub test3()
Dim i As Long
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(i, 1).Value = "Summe" Then Rows(CStr(i) & ":" & CStr(i + 1)).Delete
Next
End Sub

Gruß Gerd
@GerdL
03.08.2016 14:12:57
RPP63
Hast Du mal einen Link oder das Wissen, ab wann eine Fragmentierung von SpecialCells zu falschen Ergebnissen führt?
Wenn wie im Screenshot Spalte A aufsteigend ist, böte sich natürlich eine vorherige Sortierung an.
Gruß Ralf
Anzeige
Selbst gefunden
03.08.2016 14:21:47
RPP63
Es sind bis einschließlich Excel 2007 8.192 Areas.
http://www.rondebruin.nl/win/s4/win003.htm
Ab Excel 2010 ist dies gefixt!
Es spricht also absolut nichts gegen meine Variante.
Gruß Ralf
AW: Selbst gefunden
03.08.2016 14:25:22
Gerd L
Hallo Ralf,
du bist einen Tick schneller als ich gewesen.
Richtig, die Sache ist versionsabhängig.
Gruß Gerd
AW: Selbst gefunden
03.08.2016 14:53:53
Daniel
Doch, es spricht was dagegen.
auch wenn die Anzahl der Fragmente nicht mehr limiert ist, ist die Bearbeitungszeit proportional zur Anzahl der Fragmente.
Das Problem ist wahrscheinlich folgendes:
Wenn Excel Zeilen löscht, muss es überprüfen, ob irgendwo eine Formel existiert, deren Zellbereich aufgrund der Löschung geändert werden muss.
Diese Überprüfung muss es für jedes Fragment separat vornehmen. dh. je stärker fragmentiert die zu löschenden Zeilen vorliegen, um so länger dauert das Löschen.
durch sortieren der Daten, so dass die zu löschenden Zeilen einen Block bilden, lässt sich der Löschvorgang stark beschleunigen.
alternativ kann man das Duplikate-Entfernen zum Löschen der Zeilen verwenden.
Da beim Duplikate-Entfernen keine Anpassung der Zellbezüge in den Formeln stattfindet, ist es auch bei stark fragmentierten Löschbereichen sehr schnell.
Gruß Daniel

Anzeige

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige