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

Lösche wenn...

Lösche wenn...
30.10.2005 17:50:06
Jartul
Hallo Leute,
habe ein kleines Makro, dass mir eine Tabelle von Inhalten säubert, sind diese kleiner als 0.1.
Wie muss ich das abändern, wenn ich "lösche falls kein Eintrag in spalte 2" die Bedingung sein soll?
danke
jartUl
P.S.:
Hier das makro:

Sub LoescheZeilenBedingt()
Dim i As Long, lz As Long
Dim Bereich As Range
Dim loesch As Boolean
With Sheets("S1") 'Namen anpassen oder 'ActiveSheet'
'letzte beschriebene Zeile ermitteln (maßgeblich hier Spalte A!)
lz = .Range("A65536").End(xlUp).Row
For i = lz To 1 Step -1 'evtl Überschrift berücksichigen (dann To 2)!
loesch = False
'Bereich = Zeile von Spalte 1 bis Spalte 30
'Set Bereich = .Range(.Cells(i, 1), .Cells(i, 30))
'ZÄHLENWENN(...;"<0") in VBA
If WorksheetFunction.CountIf(.Cells(i, 2), "") > 0 Then loesch = True
'Zelle Dx >0,01
'If .Cells(i, 2).Value > 0.001 Then loesch = True
'evtl weitere Bedingungen
If loesch Then .Rows(i).Delete Shift:=xlUp
Next i
End With
End Sub

Das aktive sollte der counter sein. "" versteht er aber nicht und das makro wird nicht ausgeführt mit dem hinweis "index out of range".

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lösche wenn...
30.10.2005 18:10:14
Erich G.
Hallo jartUl (?),
das müsste so funzen (2. Version ist kürzer):

Sub LoescheZeilenBedingt()
Dim i As Long, lz As Long
Dim Bereich As Range
Dim loesch As Boolean
With Sheets("S1") 'Namen anpassen oder 'ActiveSheet'
'letzte beschriebene Zeile ermitteln (maßgeblich hier Spalte A!)
lz = .Range("A65536").End(xlUp).Row
For i = lz To 1 Step -1 'evtl Überschrift berücksichigen (dann To 2)!
loesch = False
'Bereich = Zeile von Spalte 1 bis Spalte 30
'Set Bereich = .Range(.Cells(i, 1), .Cells(i, 30))
'ZÄHLENWENN(...;"<0") in VBA
If IsEmpty(.Cells(i, 2)) Then loesch = True
'Zelle Dx >0,01
'If .Cells(i, 2).Value > 0.001 Then loesch = True
'evtl weitere Bedingungen
If loesch Then .Rows(i).Delete Shift:=xlUp
Next i
End With
End Sub


Sub LoescheZeilenBedingtK()
Dim i As Long, lz As Long
With Sheets("S1") 'Namen anpassen oder 'ActiveSheet'
'    letzte beschriebene Zeile ermitteln (maßgeblich hier Spalte A!)
lz = .Range("A65536").End(xlUp).Row
For i = lz To 1 Step -1 'evtl Überschrift berücksichigen (dann To 2)!
If IsEmpty(.Cells(i, 2)) Then .Rows(i).Delete
Next i
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Lösche wenn...
30.10.2005 18:29:28
Jartul
Super!! Habe versucht mit der CountIf. weiterzumachen und einfach die Bedingung auf "leer" oder sowas zu stellen.
If IsEmpty ist natürlich naheliegender ;-)
Wo gibt es eine Online-Befehlsreferenz/Tutorials, oder komme ich um ein Buch (bzw. die CD von Herber) nicht herum??
danke nochmals!
jartUl
Danke für Rückmeldung!
30.10.2005 18:56:28
Erich G.
Hallo jartUl,
da kommt es sehr darau an, welche Vorkenntnisse du hast und wie tief du in VBA einsteigen willst - Bücher gibt es viele, auf unterschiedlichen Levels und zu unterschiedlichsten Preisen. Da müsstest du selbst schauen, welches Buch zu dir passt.
Die Herber-CDs sind sicher hilfreich, auch online hat Herber viel zu bieten, nicht nur dieses Forum.
Interessant ist auch die VBA-Hilfe. Unter dem Reiter "Inhalt" findest du in den Bereichen "Visual Basic-Konzepte" und "Visual Basic-Sprachverzeichnis" jede Menge Anregungen und Beispiele.
Grüße von Erich aus Kamp-Lintfort
P.S.:
Schau doch doch mal so nebenbei, was bei https://www.herber.de/forum/faq.htm
unter "Die Kommunikation" über NickNames steht...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige