Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1008to1012
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 wenn ...

Zeilen löschen wenn ...
15.09.2008 09:59:08
Ralf
Hallo Excel - Experten,
ich habe eine kleine Tabelle ( Spalten A bis G ).
Nun möchte ich gerne erreichen, daß Excel mir immer
die kompletten Zeilen löscht, wenn ich Spalte G eine 1 steht,
und dann anschließend nach Spalte A aufsteigend sortiert.
Hat hierzu jemand eine Idee ?
Bin für jeden Tipp dankbar :-)
Viele :-) Grüße
Ralf

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen wenn ...
15.09.2008 10:14:03
David
Hallo Ralf,
das könnte so gehen:

Sub test()
zeile = Range("A65536").End(xlUp).Row
For i = zeile To 1 Step -1
If Range("G" & i) = 1 Then Range(i & ":" & i).EntireRow.Delete
Next
Range("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub


Rückmeldung wäre nett.
Gruß
David

AW: Zeilen löschen wenn ...
15.09.2008 10:17:00
Daniel
Hi
dazu:
- Daten nach Spalte G sortieren
- Autofilter setzen in Spalte G und nach 1 filtern
- alle Zeilen außer der 1. löschen
- Daten nach spalte A sortieren.
falls du es als Makro brauchst, kannst du das ja mit dem Recorder aufzeichnen.
ne andere Methode wäre folgende:

Sub test()
Dim Zelle1 As Range, Zelle2 As Range
ActiveSheet.UsedRange.Sort key1:=Range("G1"), order1:=xlAscending, header:=xlGuess
Set Zelle1 = Range("G:G").Find(what:=1, after:=Cells(1, "G"), lookat:=xlWhole, LookIn:=xlValues, _
searchdirection:=xlNext)
Set Zelle2 = Range("G:G").Find(what:=1, after:=Cells(Rows.Count, "G"), lookat:=xlWhole, LookIn:= _
xlValues, searchdirection:=xlPrevious)
Range(Zelle1, Zelle2).EntireRow.Delete
ActiveSheet.UsedRange.Sort key1:=Range("A1"), order1:=xlAscending, header:=xlGuess
End Sub


Gruß, Daniel
Gruß, Daniel

Anzeige
Vielen Dank Daniel !
15.09.2008 10:29:00
Ralf
Hallo Daniel,
vielen Dank für Deine schnelle und supergute Antwort !
Leider habe ich vorhin vergessen, daß die ganze Aktion erst
ab Zeile 11 laufen soll, ich werde mal versuchen mit meinen
bescheidenen Kenntnissen dies umzubauen :-)
Deinen zweiten Tipp habe ich noch nicht ausprobiert, werde
es aber unmittelbar tun !
Viele Grüße
Ralf
AW: Zeilen löschen wenn ...
15.09.2008 10:31:57
Tino
Hallo,
noch eine Möglichkeit
Modul Modul1
Option Explicit 
 
Sub Löschen_Sorieren() 
Dim Bereich As Range 
Set Bereich = Range("G1", Cells(Rows.Count, "G").End(xlUp)) 
Set Bereich = Bereich.Offset(0, Columns.Count - Bereich.Column) 
 
    Bereich.FormulaR1C1 = "=IF(RC7=1,TRUE,"""")" 
 
If Application.WorksheetFunction.CountIf(Bereich, True) > 0 Then 
 Columns(Bereich.Column).SpecialCells(xlCellTypeFormulas, 4).EntireRow.Delete 
End If 
    Columns(Bereich.Column).Clear 
    Range("A:G").Sort Range("A1"), 1 
     
Set Bereich = Nothing 
End Sub 


Gruß Tino

Anzeige
Super Tino !!! Vielen Dank, es funzt
15.09.2008 10:49:00
Ralf
Hallo Tino,
vielen Dank für Deine Antwort !!!
Ich habe es sofort ausprobiert und es klappt
supertoll ! ( Sogar noch, nachdem ich Excel
gesagt habe, daß das Ganze ab Zeile 11
starten soll :-)
Du hast mir sehr geholfen, vielen Dank und viele Grüße
Ralf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige