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

Mit Makro Zeilen löschen

Mit Makro Zeilen löschen
31.05.2006 17:19:00
Niels
Hallo Excel Helfer,
ich stehe gerade wieder vor einer kleinen Herausforderung,
an der ich mir die Zähne ausbeiße.
Da mein Projekt sehr komplex ist, beschreibe ich mein Anliegen nachfolgend etwas vereinfacht:
1.) Tabelle mit ca. 5000 Zeilen
2.) In Spalte A befinden sich absteigend Nummern (z.B. A1=2365; A2=2364 usw.)
3.) Die Anzahl der "postiven" Zahlen und Zeilen varriert täglich
(mal A1=2600 abwärts, mal A1=2433 abwärts usw.)
3.) Ich möchte per Makro alle Zeilen löschen, bei denen der Wert in Spalte A 4.) Ich habe einen Makro, der jede Zelle in A einzeln prüft und ggf. die Zeile löscht. Da der Makro aber später viele andere Aufgaben übernehmen soll ist die Rechenzeit viel zu groß.(Makro siehe unten)
Frage: Wie kann ich den Makro modifizieren, das er alle Zeilen, in denen Ax (z.B. A1-Ax >0 = Zeile 1-x behalten - Ax bis A5000 Ich hoffe ich habe das Problem verständlich beschrieben und Ihr könnt mir helfen.
Vielen Dank für Eure Tipps!
Gruß aus Berlin
Niels
Der momentane Testmakro:
Option Explicit

Sub test()
Dim i As Integer
Dim n As Integer
i = Cells(Rows.Count, 1).End(xlUp).Row
For n = i To 1 Step -1
If Cells(n, 1).Value < 1 Then
Rows(n).Select
Selection.Delete Shift:=xlUp
End If
Next
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit Makro Zeilen löschen
31.05.2006 18:07:21
Erich
Hallo Niels,
versuchs mal mit
Option Explicit
Sub test()
Dim i As Long, n As Long, strT As String
i = Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) < 1 Then
strT = "A1:A" & i
n = Evaluate( _
"=MATCH(MAX(IF(" & strT & "<1,IF(" & strT & "<>""""," & strT & ")))," & strT & ",0)")
Range(Rows(n), Rows(i)).Delete Shift:=xlUp
End If
End Sub
Die verwendete Matrixformel stammt von
http://www.excelformeln.de/formeln.html?welcher=38
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Perfekt!
01.06.2006 09:17:27
Niels
Genau wie ichs mir vorgestellt habe! ;o)
Danke Erich
Viele Grüße
Niels

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige