Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Loeschen von Zeilen mit VBA

Forumthread: Loeschen von Zeilen mit VBA

Loeschen von Zeilen mit VBA
25.10.2007 12:37:40
Zeilen
Hallo Forum,
bareuchte mal wieder eure Tips bei einem VBA-Problem.
Wie kann ich die Zeilen die ein automatischer Filter in Spalte A gefunden hat mit
Rows("59:59").Delete Shift:=xlUp
loeschen?
Wie muss man die Rows("?") definieren? Es sollen alle ueber den Filter gefundenen Zeilen, jedoch nicht die Ueberschriftenzeile geloescht werden.
Kann mir da jemand einen Tip geben? Hab bereits fleissig gesucht aber noch nix gefunden. So sieht der Code bisher aus:

Sub Cancella_Nr_Ordine()
Dim Numero_Ordine As Variant
Dim Cerca As Variant
ActiveSheet.Unprotect
Application.ScreenUpdating = False
Numero_Ordine = Application.InputBox(Chr(13) & Chr(13) & "Digita numero dell'ordine : ", " _
Cancella Numero Ordine")
'Pruefung Eingabe
If Numero_Ordine = "" Then
MsgBox "Il numero ordine non è stato digitato, azione viene interrotta!"
End If
If Numero_Ordine = False Then
MsgBox "Azione é annullata!"
End If
If Numero_Ordine = "" Or Numero_Ordine = False Then Exit Sub
Set Cerca = Range("A:A").Find(What:=Numero_Ordine, LookIn:=xlValues, Lookat:=xlWhole) 'prueft  _
gesamten Zellinhalt auf Uebereinstimmung
If Cerca Is Nothing Then
MsgBox "Il numero digitato non c'è nel database. Azione viene interrotta"
End If
If Cerca Is Nothing Then Exit Sub
Columns("A:A").AutoFilter Field:=1, Criteria1:=Numero_Ordine
' Rows("?").Delete Shift:=xlUp ' - gefundene Zeilen werden geloescht
Application.ScreenUpdating = True
ActiveSheet.Protect
End Sub


Vielen Dank fuer euer INteresse und Hilfe,
Markus

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Angezeigte Autofilter-Zeilen per VBA löschen
25.10.2007 12:50:00
NoNet
Hallo Markus,
hier eine sehr universellen Methode, wie man die angezeigten Zeilen des Autofilterergebisses ohne die Überschrift löschen kann :

Sub AutofilterZeilenLoeschen()
'Löscht alle Zeilen, die per Autofilter angezeigt wurden :
ActiveSheet.AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End Sub


Es spielt dabei keine Rolle, WO auf dem aktuellen Blatt sich die Liste befindet (sie muss also nicht in A1 beginnen) und welches Feld gefiltert wurde (allerdings muss der Autofilter aktiviert sein !).
ACHTUNG : Es wird die komplette Zeile gelöscht - es sollte sich daneben also keine weiteren Inhalte befinden !
Teste das daher bitte zuvor an einer KOPIE Deines Tabellenblattes !
Gruß, NoNet

Anzeige
erlmT:Angezeigte Autofilter-Zeilen per VBA löschen
25.10.2007 13:11:11
Markus
Hallo NoNet!
Super, klappt bestens! Damit ich die Zeile besser verstehe nur die Nachfrage (man will ja dazulernen:-)
Das Offset(1) bewirkt, dass die erste Zeile verschont bleibt?
Und falls du noch Lust hast...:-) :
Wie kann ich dann das Offset auch zur Definition eines Bereichs verwenden? Das :
Range("E4:E" & Range("D65536").End(xlUp).Row.Offest(1,0)) funzt naemnlich z.B. nicht.
Vielen Dank fuer deine Hilfe!
Gruss,
Markus

Anzeige
Bereichsdefinition per OFFSET
25.10.2007 13:27:00
NoNet
Hey Markus,
ja, das OFFSET(1) dient in meinem o.g. Beispiel dazu, die Überschriften zu "verschonen" (schöner Ausdruck ;-).
Mit dieser Code-Zeile sollte Deine Bereichsdefinition funktionieren :
MsgBox Range("E4:E" & Cells(Rows.Count,"D").End(xlUp).Offset(1).row).Address
Gruß, NoNet

Anzeige
erlmT: Bereichsdefinition per OFFSET
25.10.2007 14:23:20
Markus
Tut Sie :-)
Danke und Gruss,
Markus
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige