Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1452to1456
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

Zeilen löschen

Zeilen löschen
16.10.2015 13:02:48
tom
Hallo,
ich habe mir ein Makro erstellt, dass in Spalte 19 alle Zeilen durchsucht, in denen x steht und diese löscht.
Sub Schaltfläche7_Klicken()
Dim i As Long
Application.ScreenUpdating = False
For i = Cells(Rows.Count, 19).End(xlUp).Row To 1 Step -1
If Cells(i, 19) = "x" Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
MsgBox ("x gelöscht"), vbExclamation
End Sub
Leider dauert dies sehr lang. Ich denke das Problem ist, dass es von ganz unten alle Zeilen ab 1.040.000 durchsucht.
Gibt es eine Möglichkeit, dass das Makro ab dem ersten Wert von unten in Spalte 19 sucht?
Viele Grüße

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen
16.10.2015 13:09:35
selli
hallo tom,
Gibt es eine Möglichkeit, dass das Makro ab dem ersten Wert von unten in Spalte 19 sucht?
genau das macht dein makro ja.
Sub Schaltfläche7_Klicken()
Dim i As Long
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
msgbox   Cells(Rows.Count, 19).End(xlUp).Row
For i = Cells(Rows.Count, 19).End(xlUp).Row To 1 Step -1
If Cells(i, 19) = "x" Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox ("x gelöscht"), vbExclamation
End Sub

ich habe mal zu beginn auch die automatische berechnung ausgeschaltet und eine msgbox hinzugefügt, damit du sehen kannst in welcher zeile begonnen wird.
gruß
selli

Anzeige
AW: Zeilen löschen
16.10.2015 13:40:15
tom
Okay, danke. Dachte es fängt ganz unten an zu suchen.
Das passt also, aber schneller ist es leider noch nicht wirklich geworden.
Gibt es da überhaupt eine Möglichkeit?
Viele Grüße

AW: Zeilen löschen
16.10.2015 13:47:12
hary
Moin
Klar. Mach es mit Filter als VBAcode.
Frei nach dem Motto:
Filter in Spalte(19) setzen/nach "x" filtern/Specialcells(xlvisible).entirerow.delete
gruss hary

AW: Zeilen löschen
16.10.2015 14:04:42
tom
Aha, gute Idee, hast du zur Umsetzung genaueres?
Viele Grüße

AW: Zeilen löschen
16.10.2015 14:20:35
hary
Moin
Hab im Moment kein Excel. Probier mal:
Dim Zeile As Long
Zeile = Cells(Rows.Count, 19).End(xlUp).Row
With ActiveSheet.Range("S1:S" & Zeile)
.AutoFilter Field:=1, Criteria1:="x"
.SpecialCells(xlVisible).EntireRow.delete
End With

gruss hary

Anzeige
AW: Zeilen löschen
16.10.2015 17:09:37
Daniel
Hi
seit 2007 ist die von mir präferierte Methode zum löschen von Zeilen das Duplikate-Entferenen aus den Datentools.
ist schnell, einfach programmiert, bei bedarf auch ohne Makro von Hand ausgeführt.
hierzu schreibt man in die erste freie Spalte am Tabellenende eine Formel, welche alle Zeilen, die gelöscht werden sollen mit 0 und die die stehenbleiben müssen mit der Zeilennummer kennzeichnet.
das wäre in deinem Fall: =Wenn(S1="x";0;Zeile())
in die erste Zeile der Hilfsspalte (dies ist ja normalerweise die Überschrift) kommt ebenfalls die 0 (immer)
dann wendet man das Duplikate-Entfernen an mit der Hilfsspalte als Kriterium und der Option "keine Überschrift".
sieht als Code so aus:
With ActiveSheet.Usedrange
With .columns(.columns.count + 1)
.FormulaR1C1 = "=IF(RC19=""x"",0,Row())"
.Cells(1, 1).value = 0
.EntireRow.RemoveDuplicates .column, xlno
.clearContents
end with
end with
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige