Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
916to920
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
916to920
916to920
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige