Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1384to1388
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

Schleife beenden

Schleife beenden
13.10.2014 09:38:05
Lars
Hallo ich habe ein Makro geschrieben, dass alle Zeilen löscht in dem keine "X" in Spalte 19 stehen. Da dies dann aber zu einer Endloschleife wird, bräuchte ich bitte eure Hilfe. Ich bräuchte einen Tipp, wie ich es am besten beenden kann, sodass auch alle Zeilen ohne "X" tatsächlich gelöscht werden. Von mir aus kann das Makro stoppen, wenn zum 1000 mal die gleiche Spalte gelöscht wurde. Glaube das man eine Bedingungsschleife außenrum schreiben muss, aber daran hänge ich leider.
Hier mein Makro zum löschen der Zeilen
Sub test()
Sheets("AMARETO-Report").Select
For N = 12 To Cells.SpecialCells(xlLastCell).Row
If Cells(N, 19)  "X" Then
Rows(N).Delete
N = N - 1
End If
Next N
End Sub
Würde mich sehr über eure unterstützung freuen
Grüße
Lars

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

Betreff
Datum
Anwender
Anzeige
machs rückwärts ...
13.10.2014 09:44:54
Matthias
Hallo Lars
Application.ScreenUpdating = False
For N = Cells.SpecialCells(xlLastCell).Row To 12 Step -1
If Cells(N, 19)  "X" Then
Rows(N).Delete
N = N - 1
End If
Next N
Gru0ß Matthias

N = N - 1 kann raus, hatte ich vergessen owT
13.10.2014 09:55:20
Matthias

AW: Schleife beenden
13.10.2014 09:49:07
UweD
Hallo
- Löschen von Zeilen immer von unten nach oben.
- Auf select kann verzichtet werden
Sub test()
Dim N As Long
Dim SH
Set SH = Sheets("AMARETO-Report")
With SH
For N = .Cells.SpecialCells(xlLastCell).Row To 12 Step -1
If .Cells(N, 19)  "X" Then
.Rows(N).Delete
End If
Next N
End With
End Sub
Gruß UweD

Anzeige
AW: Schleife beenden
13.10.2014 10:38:43
RPP63
Hallo!
Das Löschen von Zeilen per Schleife ist die denkbar beste Variante, um den Kaffeekonsum in unbekannte Höhen zu steigern!
(Meistens handelt es sich dann um keine Endlosschleife, sondern um ein Endlosrödeln von Excel)
Per Hand würde ich es so machen:
  • Setze einen Autofilter in Spalte S

  • Filtere nach x

  • Lösche alle sichtbaren Zeilen ab Spalte 12

  • Entferne den Autofilter

  • (Excel entfernt nur sichtbare Zeilen!)
    In VBA-Sprech (ohne Fehlerüberprüfung):
    Dim LetzteZeile As Long
    With ActiveSheet.UsedRange
    LetzteZeile = .SpecialCells(xlCellTypeLastCell).Row
    .AutoFilter Field:=19, Criteria1:="x"
    Intersect(Rows("12:" & LetzteZeile), .SpecialCells(xlCellTypeVisible)).EntireRow.Delete
    End With
    

    Gruß, Ralf

    Anzeige
    AW: Zeilen löschen schnell mit Duplikate entf.
    13.10.2014 10:44:00
    Daniel
    Hi
    Zeilen einzeln per Schleifen zu löschen ist die langsamste Methode.
    Excel 2007 stellt dir Werkzeuge bereit, dies wesentlich schneller zu tun:
    Sub Loeschen()
    Dim SP as  Long
    Dim ZE as Long
    With Sheets("AMARETO-Report")
    SP = .Specialcells(xlcelltypelastcell).Column + 1
    ZE = .Specialcells(xlcelltypelastcell).Row
    with .Range(.cells(11, SP), .Cells(ZE, SP))
    .FormulaR1C1 = "=If(rc19=""x"",row(),0)"
    .cells(1, 1).value = 0
    .entirerow.RemoveDuplicates .Column, xlno
    .clearcontents
    end with
    End with
    End Sub
    
    Gruß Daniel

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige