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

Makro überspringt Zeilen!??

Makro überspringt Zeilen!?
markus
Hallo Leute,
ich habe ein Makro das Zeilen löscht wenn in bestimmten Zellen keine Zahlen sonder Text steht.
Das funktioniert auch alles, nur überspringt das Marko zwischendrin Zeilen/Zellen, wodurch ich das ganze immer mehrfach laufen lassen muss.
Da das irgendwie nicht die Endlösung sein kann meine Frage ob jemand weiß warum das passiert.
hier mal das Makro. und die Datei
Sub loeschen()
Dim rngCell As Range
Dim Rows1 As Integer
Dim d As Integer
For d = 0 To 3
Range("e6:g300").Select
For Each rngCell In Selection.Cells
With rngCell
.Select
If ActiveCell.NumberFormat = "@" Then
Rows1 = ActiveCell.Row
Range(Cells(Rows1, 1), Cells(Rows1, 8)).Delete
End If
End With
Next
Next d
End Sub
https://www.herber.de/bbs/user/63562.xls
Danke für Hinweise und Hilfe.
gruß
markus

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro überspringt Zeilen!?
31.07.2009 22:53:48
BoskoBiati
Hallo Markus,
Zeilen löschen immer von unten nach oben. Grund : wenn Schleifenzähler auf 7, Zeile / wird gelöscht. Zeile 8 wird Zeile 7, Zeile 9 wird 8. Schleifenzähler springt auf 8: Neue Zeile 7, vormals 8, wird übersprungen.
AW: Makro überspringt Zeilen!?
31.07.2009 22:57:51
Josef
Hallo Markus,
Zeilen sollte man immer von unten nach oben löschen.
Ich bevorzuge es allerdings so.
Sub loeschen()
  Dim rngCell As Range, rngDelete As Range
  
  For Each rngCell In Range("e6:g300")
    If rngCell.NumberFormat = "@" Then
      If rngDelete Is Nothing Then
        Set rngDelete = Range(Cells(rngCell.Row, 1), Cells(rngCell.Row, 8))
      Else
        rngDelete = Union(rngDelete, Range(Cells(rngCell.Row, 1), Cells(rngCell.Row, 8)))
      End If
    End If
  Next
  
  If Not rngDelete Is Nothing Then rngDelete.Delete
  
  Set rngDelete = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Makro überspringt Zeilen!?
02.08.2009 13:49:24
markus
Danke Euch! Das hatte ich nicht bedacht.
Sepp dein Makro sieht sehr elegant aus, nur tut es bei mir nix, bzw. löscht er nur die gerade durch den Cursor markierte oder auch oberste makrierte zeile wenn Text drin steht. sonst nichts...
Ist mir ein bißchen schleierhaft.
Kleine Korrektur
02.08.2009 16:47:31
Erich
Hi Markus,
in Sepps Makro fehlt hinter dem "Else" das "Set " vor "rngDelete = ".
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Danke Erich, sehr Aufdringlich ;-))
02.08.2009 16:53:31
Josef
Hallo Erich,
hab ich doch glatt übersehen;-((
Danke für's Mitdenken.
Gruß Sepp

Anzeige
Ah, augen auf im Straßenverkehr
03.08.2009 00:03:02
markuskrohn@web.de
habs auch nicht entdeckt.
Danke vielmals Erich und Sepp...

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige