Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
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
07.11.2019 11:55:49
Claudio
Hallo zusammen
Folgender Code braucht bei meinem Datensatz von kanpp 7000 Daten sehr lange. Hat jemand eine gute Idee, wie ich diesen optimieren kann? Meine Programmierkenntnisse sind leider nur Anfänger.
Vielen Dank
if Opt_OE_Filterinhalt = True And Left(Sheets("Steuerung").Range("F15"), 1) "K" Then
geprueft = 0
loopz = 0
Do
If loopz = Anz Then Exit Do
zu_pruefende_OE = Range("B1").Offset(geprueft + 1)
gefund = ""
On Error Resume Next
gefund = WorksheetFunction.Match(zu_pruefende_OE, ThisWorkbook.Sheets("Steuerung").Range("J56:J80"), 0)
On Error GoTo 0
If gefund = "" Then
Range("B1").Offset(geprueft + 1).EntireRow.Delete
loopz = loopz + 1
Else
geprueft = geprueft + 1
loopz = loopz + 1
End If
Loop
End If

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen
07.11.2019 12:26:59
Piet
Hallo
dein Code müsste theoretisch in einer "Todesschleife" laufen, weil du am Anfang die Variable "Anz" nicht auf einen Wert definierten gesetzt hast!
Probier bitte mal den Code über eine For Next Schleife aus, wo man sich die LastZell zuerst in eine Variable laedt. Wenn das Spalte B ist stimmt der Code. Zur Vorsicht aber bitte deine Originaldaten in eine Testdatei laden und dort testen, damit nicht versehentlich Originaldaten verloren gehen.
Ich benutze gerne die With Klammer und For Next über Each AC, weil man damit die Syntac ellegant verkürzen kann. Prüfe aber bitte ob die Bereich mit "B:B" und "J:J" von mir richtig gewaehlt wurden. Im Zweifelsfall kannst du dir die Zelle mit AC.Select oder AC.AC.Offset(1, 0).Select und Exit Sub dahinter zum testen optisch ansehen wo du wirklich bist!
mfg Piet
Sub test()
Dim AC As Range, gefund As Variant
With ThisWorkbook.Sheets("Steuerung")
If Opt_OE_Filterinhalt = True And Left(.Range("F15"), 1)  "K" Then
lz1 = Cells(Rows.Count, 2).End(xlUp).Row
For Each AC In .Range("B1:B" & lz1)
Prüf_OE = AC.Offset(1, 0)
On Error Resume Next
gefund = Empty
gefund = WorksheetFunction.Match(Prüf_OE, .Range("J56:J80"), 0)
On Error GoTo 0
If gefund = "" Then AC.Offset(1, 0).EntireRow.Delete
Next AC
End If
End With
End Sub

Anzeige
AW: Zeilen löschen
07.11.2019 13:06:43
Claudio
Vielen Dank für die Antwort und die Hilfe. Ich erhalte nun folgende Fehlermeldung:
"Wir können diese Änderung an den ausgewählten Zellen nicht vornehmen, da sie sich auf eine PivotTablte auswirken."
Kann ich dies irgendwie noch umgehen?
Vielen Dank
AW: Zeilen löschen
07.11.2019 13:18:58
Daniel
Hi
Zeilen löschen mit Bedingung geht am schnellsten so:
1. schreibe ans ende der Tabelle in eine Hilfsspalte eine Formel, welche alle Zeilen die gelöscht werden sollen mit 0 kennzeichnet und alle die stehen bleiben müssen mit der aktuellen Zeilennummer
2. schreibe in die Überschriftenzeile der Hilfsspalte ebenfalls die 0
3. wende auf die ganze Tabelle die Funktion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN an, mit der Hilfsspalte als Kriterium und der Option "keine Überschrift"
4. lösche die Hilfsspalte.
Gruß Daniel
AW: Zeilen löschen
07.11.2019 13:27:07
Claudio
Besten Dank für die Rückmeldungen.
unbelehrbar. o.w.T.
07.11.2019 16:05:38
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige