Supportnet / Forum / Datenbanken
Makro zum löschen von bestimmten Zeilen
Frage
guten tag zusammen...
habe hier ein meiner meinung nach etwas größeres problem ^^
ich hab eine preisliste mit über 45000 einträgen und soll diese tabelle mit meiner eigenen abgleichen und entsprechend aktualisieren.
mit dem befehl:
=WENN(ISTNV(SVERWEIS(TEXT(A2;"@");mac_dbf.dbf!daten;8;FALSCH));"nicht mehr gültig";SVERWEIS(TEXT(A2;"@");mac_dbf.dbf!daten;8;FALSCH))
konnte ich dies lösen - habe auch gleichzeitig die meldung "´NV" unterdrückt und sie durch "nicht mehr gültig" ersetzt (für die artikel die nichtmehr in der neuen preisliste vorhanden sind und somit ungültig sind)
nun muss ich aber diese zeilen mit "nicht mehr gültig" alle rauslöschen .....
habe es zunächst mal mit der "makro-aufnehmen" funktion versucht, (autofilter eingeschaltet; nach "nicht mehr gültig" sortiert ; die entsprechenden "übriggebliebenen" markiert und dann gelöscht) allerdings hat er mir da alle zeilen gelöscht (von der ersten markierten bis zur letzten)
nun hab ich mir folgendes makro zusammengebastelt:
[i]
Sub ZeilenLöschen()
Dim i As Integer
Range("B").Select
z = ActiveSheet.UsedRange.Rows.Count
Do Until ActiveCell.Value = ""
If ActiveCell.Value = "nicht mehr gültig" Then
ActiveCell.EntireRow.Delete
i = i + 1
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
MsgBox "Es wurden " & i & " Zeilen gelöscht"
End Sub
[/i]
das makro funktioniert zwar, dauert es ewig, da er nach jeder gelöschten zeile die liste aktualisiert....
nuna zu meiner eigentlichen frage
da mir das makro einfach zu lange dauert wollte ich wissen, ob die möglichkeit besteht, dass er alle zeilen in denen "nicht mehr gültig" vorkommt markiert und dann am ende löschte (sodass er das ganze nur einmal aktualisieren muss)
wäre nett wenn mir jemand mein makro entsprechend ergänzt
danke im vorraus
mfg
issues05
Antwort 1 von rolandaa
hallo, gehe davon aus das du im excel experimentierst,
dein filtern mit dem autofilter war nicht ganz falsch, aber du hast die markierung zum löschen falsch gesetzt !! (sag ich mal sooooo).
nach dem filtern musst du beginnend in der übrig geblibenen zweiten zeile eine neue markierung anklicken und dann erst nach unten ziehen, da deine vorhandene markierung irgen wo in deinem ausgefiltertem bereich liegt.
dein filtern mit dem autofilter war nicht ganz falsch, aber du hast die markierung zum löschen falsch gesetzt !! (sag ich mal sooooo).
nach dem filtern musst du beginnend in der übrig geblibenen zweiten zeile eine neue markierung anklicken und dann erst nach unten ziehen, da deine vorhandene markierung irgen wo in deinem ausgefiltertem bereich liegt.