Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
596to600
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
596to600
596to600
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro zum Zeilen löschen

Makro zum Zeilen löschen
14.04.2005 14:05:35
Thomas Lohr
Guten Tag !
Folgendes Problem:
ich habe ein Excel-File, vollgepackt mit lauter Zahlen. Excel soll nun jede Zeile durchsuchen. Taucht in einer Zeile "-99999" oder eine Zahl zwischen 0 und 19 auf, so soll Excel die Zeile löschen. Falls nicht soll Excel die Suche in der nächsten Zeile fortsetzen. Und das solange, bis keine Zeilen mehr da sind. Ist zwar wahrscheinlich nicht schwer, da ich aber von VBA ziemlich wenig Ahnung habe...
Vielen Dank, Tom

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Kleiner Nachtrag
14.04.2005 14:07:31
Lohr Thomas
Kleiner Nachtrag: Excel soll nicht die ganze Zeile dursuchen, sondern nur die Daten in den Spalten D,G,J auf die Bedingung durchprüfen.
Danke !
AW: Kleiner Nachtrag
14.04.2005 14:16:30
Reinhard
Hallo Thomas

Sub tt()
letzte = IIf(Range("d65536") <> "", 65536, Range("d65536").End(xlUp).Row)
For z = letzte To 1 Step -1
For s = 4 To 10 Step 3 '4=d,7=g,j=10
Select Case Cells(z, s)
Case 0 To 19
Cells(z, s).EntireRow.Delete
Case -9999
Cells(z, s).EntireRow.Delete
End Select
Next s
Next z
End Sub

Viele Grüße
Reinhard
Fehlermeldung
14.04.2005 14:30:10
Tom
Hmm, da bringt er leider eine Fehlermeldung in der zweiten Zeile des Makros: Syntaxfehler.
Für was ist denn die zweite Zeile des Makros gut ?
Anzeige
AW: Fehlermeldung
14.04.2005 14:46:40
Reinhard
Hallo Tom,
da wird die letzte befüllte zeile ermittelt, Syntaxfehler ist bei mir nicht. Aber wegen der 0 habe ich es nochmal geändert.

Sub tt()
letzte = IIf(Range("a65536") <> "", 65536, Range("a65536").End(xlUp).Row)
For z = letzte To 1 Step -1
For s = 4 To 10 Step 3 '4=d,7=g,j=10
Select Case Cells(z, s)
Case 0 To 19
If Cells(z, s) <> "" Then
Cells(z, s).EntireRow.Delete
Exit For
End If
Case -9999
Cells(z, s).EntireRow.Delete
Exit For
End Select
Next s
Next z
End Sub

Gruß
Reinhard
AW: Fehlermeldung
14.04.2005 14:50:04
Reinhard
Hallo Tom,
axo, 8.0 kennt iif noch nicht, dann nimm anstatt der IIF-Zeile folgendes:
letzte = Range("a65536").End(xlUp).Row
Viele Grüße
Reinhard
Anzeige
AW: Fehlermeldung
14.04.2005 16:55:05
Holger
Hi,
IIF gibt es auch in Excel 97
mfg Holger
AW: Kleiner Nachtrag
14.04.2005 14:34:05
WernerB.
Hallo Thomas,
wie gefällt Dir das?

Sub Thomas()
Dim i As Long, laR As Long, _
j As Byte, _
loesch As Boolean
Application.ScreenUpdating = False
laR = Cells(Rows.Count, 4).End(xlUp).Row
If Cells(Rows.Count, 7).End(xlUp).Row > laR Then _
laR = Cells(Rows.Count, 7).End(xlUp).Row
If Cells(Rows.Count, 10).End(xlUp).Row > laR Then _
laR = Cells(Rows.Count, 10).End(xlUp).Row
For i = laR To 1 Step -1
loesch = False
For j = 4 To 10 Step 3
If Application.IsNumber(Cells(i, j).Value) = True Then
If Cells(i, j).Value = -99999 Then loesch = True
If Cells(i, j).Value >= 0 And Cells(i, j).Value <= 19 Then loesch = True
End If
Next j
If loesch = True Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: Kleiner Nachtrag
14.04.2005 14:37:40
Tom
Grummel, grummel, wieder Syntaxfehler. Liegt wohl an meiner Uraltkiste !

Grüße, Tom
AW: Kleiner Nachtrag
14.04.2005 14:47:53
WernerB.
Hallo Thomas,
Deine Excelversion sollte schon Excel 97 oder jünger ("Ab 8.0") sein, sonst hast Du schlechte Karten.
Meinen Makrovorschlag habe ich ohne Beanstandung erfolgreich getestet.
Natürlich kenne ich auch die besonderen Gegebenheiten Deines Tabellenblattes nicht (z.B. Verwendung verbundener Zellen oder ähnlichen Kram), so dass aus der Ferne ohne Deine Datei schwerlich eine Aussage zu der Fehlerursache getroffen werden kann.

Gruß
WernerB.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige