Excel Macro Problem

Liebe Experten,

ich bin absolut auf Eure Hilfe angewiesen! Ich brauche Hilfestellung zum Entwickeln eines Excel-Makros.
Hier ist meine Problemstellung (etwas vereinfacht, aber es ist im Prinzip genau das was ich brauche):

"Ist der Zahlenwert der 3. (Spalten-) Zelle (auf der ich mich gerade befinde) > 4000, dann soll die Reihe unter mir und die, auf der ich gerade bin, geloescht werden.
Ist der Wert jedoch

"Ist der Zahlenwert der 3. (Spalten-) Zelle (auf der ich mich
gerade befinde) > 4000, dann soll die Reihe unter mir und
die, auf der ich gerade bin, geloescht werden.
Ist der Wert jedoch

Sub roland()
zei = Range(„C65536“).End(xlUp).Row
For n = zei To 1 Step -1
If Cells(n, 3).Value > 4000 Then
Rows(n).Delete
Rows(n).Delete
End If
Next n
End Sub
Gruß
Reinhard

Hallo Roland,

hier meine etwas von Reinhard’s abweichende Lösung

Sub ZeilenLoeschen()
 Sollwert = 4000 ' Ist Sollwert überschritten, dann werden Zeilen gelöscht
 If MsgBox("Befindet sich der Cursor auf der 1. zu überprüfenden Zelle?", vbYesNo) = vbNo Then Exit Sub
 Adresse = ActiveCell.Address 'Startfeld merken
' Anzahl zu überprüfende Zeilen ermitteln, gesucht wird die letzte nicht leere Zelle in aktueller Spalte
 Application.Goto Reference:="R65000C" & ActiveCell.Column
 Selection.End(xlUp).Select
 AnzahlReihen = ActiveCell.Row
' Positionieren auf Startfeld
 Range(Adresse).Select
 For I = 1 To AnzahlReihen Step 2
 'Wert der aktuellen Zelle überprüfen
 If ActiveCell.Value \> Sollwert Then
 ActiveCell.Rows("1:2").EntireRow.Select
 Selection.Delete Shift:=xlUp
 Else
 'Cursor 2 Zeilen nach unten bewegen, wenn Zeile nicht gelöscht wurde
 ActiveCell.Offset(2, 0).Rows("1:1").EntireRow.Select
 End If
 ActiveCell.Offset(0, Range(Adresse).Column - 1).Select
 Next I
 Range(Adresse).Select
End Sub

Gruß
Franz

1000 Dank!!!
Ich bin absolut beeindruckt wie ihr das in so kurzer Zeit habt programmieren koennen!

Ich musste noch ein paar Sachen abaendern, so dass es auf meine speziellen Datensaetze passt-- aber es funktioniert einwandfrei. Ich habe schaetzungsweise 2 Tage Zeit gespart.

Ganz herzlichen Dank!

Roland

OT Letzte Zeile

Application.Goto Reference:=„R65000C“ & ActiveCell.Column
Selection.End(xlUp).Select
AnzahlReihen = ActiveCell.Row

Hallo Franz,
ich würd AnzahlReihen so ermitteln:
AnzahlReihen=range(„c65536“).end(xlup).row
ist doch kürzer, übersichtlicher *find*
Warum benutzt du das nicht? *grübel*
Mein Code hat 2 Fehler.
Er gibt ein falsches Ergebnis wenn in C65536 was drinsteht, okay dann nehme ich
AnzahlReihen=iif(range(„c65536)“", 65536, range(„c65536“).end(xlup).row)
[Excel97 kennt das Iif noch nihct]
Und der zweite Fehler ist noch unwahrscheinlicher deshalb fange ich den nicht ab.
Wüde mich schon interessieren warum du das nicht übernimmst.
Gruß
Reinhard