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

Makro löscht nur teilweise

Makro löscht nur teilweise
Franz
Hallo
Habe ein ähnliches Problem wie es schon im Archiv steht, kann es aber auf mein Makro nicht anwenden. Daher werde ich etwas ausholen müssen. Mein Makro sollte gewissen Zeilen die gewissen Bedingungen erfüllen löschen. Wenn das Makro von oben nach unten durchgeht, überspringt es auf Grund der automatischen Umnummerierung von Excel die nachfolgende Zeile.
Verwendet man einen

Sub test() {aus Archiv}
For i = Cells(Rows.Count, 7).End(xlUp).Row To 1 Step -1
If Cells(i, 7).Value = "SERCON SERVICE-KONZEPTE FUER" Then
Cells(i, 7).EntireRow.Delete Shift:=xlUp
End If
Next
End Sub

In dem man von unten her löscht, funktioniert dies.
Ich möchte jetzt aber eine Range und for each cell in Selection verwenden:

Sub AuszugausMakro()
Range(rngStartpoint, rngEndpoint).Select
For Each cell In Selection
If Cells(cell.Row, rngLastYearColumn.Column) = 0 _
And Cells(cell.Row, rngCurrentYearColumn.Column) = 0  Then
Rows(cell.Row).EntireRow.Delete
End Sub

RngStartpoint wird durch den User bestimmt in dem er in eine Zelle klickt, den Endpunkt bestimme ich mit :
Set rngEndpoint = Cells(65000, rngStartpoint.Column).End(xlUp)
Dies möchte ich nach Möglichkeit auch so beibehalten. Kann ich irgendwie dafür sorgen das der “for each cell in selection” Befehl unten anfängt? Ein einfaches umdrehen der Range auf
Range(rngEndpoint,rngStartpoint).Select
Hilft da leider nicht. Hat irgendjemand eine Idee
Danke, Gruss
Franz

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

Betreff
Benutzer
Anzeige
AW: Makro löscht nur teilweise
Moe
Hallo Franz
Versuch es mal so
Gruss
Moe

Sub AuszugausMakro()
Range(rngStartpoint, rngEndpoint).Select
schleife:
For Each cell In Selection
If Cells(cell.Row, rngLastYearColumn.Column) = 0 _
And Cells(cell.Row, rngCurrentYearColumn.Column) = 0  Then
Rows(cell.Row).EntireRow.Delete
goto Schleife
End Sub

AW: Makro löscht nur teilweise
Franz
Versteh ich dich da richtig Moe, dann machst du eine Schlauf rings um den Befehl rum damit er sich wiederholt?
schleife:
If Cells(cell.Row, rngLastYearColumn.Column) = 0 _
And Cells(cell.Row, rngCurrentYearColumn.Column) = 0 Then
Rows(cell.Row).EntireRow.Delete

End If
Next
GoTo schleife
da bringt dann einen Type missmatch
Anzeige
AW: Makro löscht nur teilweise
Moe
Ja denn dann fängt er Oben wieder an bis es keien änderungen mehr gibt
Oder habe ich dich Missverstanden
Gruss
Moe
AW: Makro löscht nur teilweise
30.03.2004 17:16:00
Franz
Hat leider nicht ganz geklappt, habe dann die Schleife vor der Range selection angesetzt und dann lief das Makro über die letzte Zelle hinaus und begann von neuem, crashde dann aber wieder weil die Referenzen einer Formel dadurch verloren gingen. Dies habe ich nun gefixed, aber aus irgendeinem unerfindlichen Grund crashed es noch immer. Versuche gerade herauszufinden wieso.
Dir ist aber auch kein andere Weg bekannt um das Makro von unten her laufen zu lassen, oder?
Übrigens herzlichen Dank für deine Hilfe, das ganze ist ziemlich mühsam, vielleicht muss ich doch alles irgendwie umbauen um es mit einem for "a to z" Loop zu machen.
Gruss
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige