Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1288to1292
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
Zeile löschen wenn Wert gleich aktuelle Zelle
27.11.2012 10:52:03
Lutz
Hallo Excel-Profis,
ich muß aus einer Tabelle diverse Zeilen löschen - die muß ich aber erst einzeln prüfen.
Da wäre es sehr praktisch wenn ich eine Funktion hätte, die genau alle Zeilen löscht die in der Spalte in der ich gerade aktiv bin den Zellwert haben den die aktive Zelle hat (inkl. der Zeile selber in der ich stehe) - geht das?
(Wenn ich also in Zelle C5 bin und der Wert 4711 ist sollte das Makro alle Zeilen löschen in denen in Spalte C der Wert 4711 steht) - das können mal Texte und mal Zahlen sein.
Viele Grüße und vielen Dank für Eure Hilfe Lutz

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile löschen wenn Wert gleich aktuelle Zelle
27.11.2012 11:43:59
hary
Hallo Lutz
Ungetestet.
Application.ScreenUpdating = False
With ActiveSheet.Cells(1, ActiveCell.Column).EntireColumn
.AutoFilter Field:=1, Criteria1:=ActiveCell.Value
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
.AutoFilter
End With
Application.ScreenUpdating = True

gruss hary

AW: Zeile löschen wenn Wert gleich aktuelle Zelle
27.11.2012 12:27:48
Lutz
Hallo Hary,
vielen Dank, sieht schon ganz gut aus aber ich habe 2 Probleme:
Er löscht die Überschriftenzeile (Zeile1) auch mit
Es steht am Ende ein einzelner Autofilter in der Spalte die man aktiviert hatte
Viele Grüße Lutz

Anzeige
AW: Zeile löschen wenn Wert gleich aktuelle Zelle
27.11.2012 13:30:23
hary
Hallo Lutz
Dim letzte As Long
Application.ScreenUpdating = False
With ActiveSheet
letzte = .Cells(.Rows.Count, ActiveCell.Column).End(xlUp).Row
.Cells(1, ActiveCell.Column).AutoFilter Field:=1, Criteria1:=ActiveCell.Value
.Range(.Cells(2, ActiveCell.Column), .Cells(letzte, ActiveCell.Column)).SpecialCells( _
xlCellTypeVisible).EntireRow.Delete
.Cells(1, ActiveCell.Column).AutoFilter
End With
Application.ScreenUpdating = True

gruss hary

AW: Zeile löschen wenn Wert gleich aktuelle Zelle
27.11.2012 14:13:53
Lutz
Hallo Hary,
vielen Dank, leider schmiert er bei der Ausführung ab - an dieser Stelle:
.Range(.Cells(2, ActiveCell.Column), .Cells(letzte, ActiveCell.Column)).SpecialCells( _
xlCellTypeVisible).EntireRow.Delete
Fehlermeldung: keine Zellen gefunden
Ich kann hier leider keine Dateien hochladen ich habe einfach so was als Beispieltabelle:
a d f g
3 g f u
3 g g j
3 g g j
3 g f g
3 g j df
Vielen Dank und viele Grüße Lutz

Anzeige
AW: Zeile löschen wenn Wert gleich aktuelle Zelle
27.11.2012 15:02:48
hary
Hallo
Dim letzte As Long
Dim zelle
Dim raus
With ActiveSheet
letzte = .Cells(.Rows.Count, ActiveCell.Column).End(xlUp).Row
For Each zelle In .Range(.Cells(2, ActiveCell.Column), .Cells(letzte, ActiveCell.Column))
If zelle = ActiveCell Then
If raus = "" Then
raus = zelle.Address
Else
raus = raus & "," & zelle.Address
End If
End If
Next
Range(raus).EntireRow.Delete
End With
End Sub

gruss hary

AW: Zeile löschen wenn Wert gleich aktuelle Zelle
27.11.2012 15:09:02
Lutz
Hallo Hary,
perfekt!!!
Vielen lieben Dank für Deine Mühe und noch einen schönen Tag für Dich.
Viele Grüße Lutz

Anzeige
AW: Zeile löschen wenn Wert gleich aktuelle Zelle
28.11.2012 10:18:13
Lutz
Hallo Hary - oder wer immer das liest.
Der Code von gestern:
Sub zeile3()
Dim letzte As Long
Dim Zelle
Dim raus As Variant
With ActiveSheet
letzte = .Cells(.Rows.Count, ActiveCell.Column).End(xlUp).Row
For Each Zelle In .Range(.Cells(2, ActiveCell.Column), .Cells(letzte, ActiveCell.Column))
If Zelle = ActiveCell Then
If raus = "" Then
raus = Zelle.Address
Else
raus = raus & "," & Zelle.Address
End If
End If
Next
Range(raus).EntireRow.Delete
End With
End Sub

Klappt wunderbar in einer kleinen Datei - in meiner Datei mit 65000 Datensätzen bricht er aber mit Laufzeitfehler 1004: Methode Range für das Objekt 'Global' ist fehlgeschlagen in der Zeile
Range(raus).EntireRow.Delete
ab.
Bei Raus stehen zig Zeilen wenn man darüberfährt aber ich denke es sidn vielleicht einfach zu viele?
Viele Grüße Lutz

Anzeige
Teste mal diese Zeile,...
29.11.2012 00:35:33
Matze,Matthias
Hallo Lutz und Harry,
hab mal einfach mit Hilfsspalten gearbeitet und die interne Funktion DATEN/Duplikate entfernen genutzt.
Das dann aufgezeichnet und die selects entfernt,...Test mit 200.000 Zeilen ohne Fehlermeldung.
Und das in 2 Sek.
Sub DeleteDuplikate()
Dim rngSource As String
rngSource = Application.InputBox("Suchbegriff", "Eingabe - Suchbegriff !")
Range("E2").Value = rngSource
Range("F1").FormulaR1C1 = "0"
Range("F2").FormulaR1C1 = "=IF(R2C5=RC[-3],0,ROW())"
Range("F2").AutoFill Destination:=Range("F2:F58628"), Type:=xlFillDefault
'    Range("F2:F58628").Select
'    Cells.Select
ActiveSheet.Range("$A$1:$F$172065").RemoveDuplicates Columns:=6, Header:=xlNo
Range("F:F,E:E").Delete
End Sub
Gruß Matze
PS.: hoffe der läuft unter 2003 habe mit 2010 gearbeitet.

Anzeige
AW: Teste mal diese Zeile,...
30.11.2012 21:49:48
lutz
Hallo Matze,
vielen Dank, er kopiert leider nur fortlaufende Zahlen in Spalte F.
Ich habe auch das Problem, das der Code ja auf bestimmte Spalten fixiert ist und man den Inhalt manuell eingeben muss...
Viele Grüße Lutz

AW: Teste mal diese Zeile,...
01.12.2012 01:09:28
Matze,Matthias
Hallo Lutz,
aus deinem ersten Beitrag die Formel dementsprechend darauf ausgelegt.
Deine Aufgabe für uns war doch:
(Wenn ich also in Zelle C5 bin und der Wert 4711 ist sollte das Makro alle Zeilen löschen in denen in Spalte C der Wert 4711 steht) - das können mal Texte und mal Zahlen sein.
Beispieldatei: (sende doch deine mal is Forum) oder eine Musterdatei.
https://www.herber.de/bbs/user/82836.zip

Anzeige
AW: Teste mal diese Zeile,...
02.12.2012 21:24:20
lutz
Hallo Matze,
vielen Dank für Deine Hilfe.
Wenn ich Deine Beispieldatei öffne, in Spalte C stehe und Hund eingebe bricht der Code aber auch ab.
Was ich suche ist ein Code der auch nicht auf eine Spalte festgelegt ist.
Ich gehe eine Riesentabelle durch und muß immer mal Daten rausschmeissen - da wäre es eben sehr hilfreich wenn man ein Feld gefunden hat das weg muß/kann einfach den Code zu starten und er löscht alle Zeilen die in der aktiven Spalte den Wert haben welche die aktuelle Zelle gerade hat.
Viele Grüße Lutz

Erstelle uns eine Musterdatei,.. owT
03.12.2012 21:34:36
Matze,Matthias

AW: Erstelle uns eine Musterdatei,.. owT
04.12.2012 22:11:33
lutz
Hallo, hier mal eine Beispieldatei.
https://www.herber.de/bbs/user/82892.xls
Öffnen und Zeile 6 bis nach Zeile 65000 runterkopieren.
Dann auf Zelle D6 gehen und das Makro ausführen - dann sollte es alle Zeilen bis auf die ersten 5 wieder löschen.
Vielen Dank für Deine Hilfe
Viele Grüße Lutz
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige