PDA

Vollständige Version anzeigen : VBA Excel Wenn bedingung erfüllt dann Zeile löschen


Johannes19
11.04.2012, 16:55
Hi,

ich habe mit Excel einige Makros Programiert aber jetzt brauche ich noch eins womit ich nach erfüllter If Bedingung die Zeile automatisch lösche.

Die Zeile Soll gelöscht werden wenn Sie :

- Leer ist
- "-"
-"unknown"
-"0"

beinhaltet
Allerdings nur in Spalte "A1:A1100"

ich habe mit VBA noch nicht viel Erfahrung
aber in Java habe ich Erfahrung gesammelt.

Ich weiß das der Code unvollständig ist aber ich komm nicht weiter auch bei google schon gesucht ...

Hoffe ihr versteht was ich meine

Mein Code:

If (Liste1.Range("A1:A1100"))zellen.value =" " OR zellen. value="-" OR Zellen.value = "unknown"
then delete

Danke im Voraus

Hajo_Zi
11.04.2012, 16:58
Du kannst nur jede Zellle einzeln prüfen´.

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm" onclick="window.open(this.href);return false"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

Johannes19
11.04.2012, 17:02
und wie sieht da der code aus?

Hajo_Zi
11.04.2012, 17:06
als ansatz.
löschen wenn Spalte A kein Datum enthält
folgender Vorschlag (die Spalte A wird auf Datumsinhalte überprüft):
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Not IsDate(Cells(i, 1).Text) Then Rows(i).Delete
Next

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

EarlFred
11.04.2012, 17:15
Hallo Grußloser,

probier mal:
Option Explicit

Sub Johannes19()
'Bedingungen:
'- Leer ist
'- "-"
'-"unknown"
'-"0"

Dim fSuche As Variant, i As Long
fSuche = Split("-,unknown,0,", ",")

For i = LBound(fSuche) To UBound(fSuche)
Range("A1:A1100").AutoFilter field:=1, Criteria1:=fSuche(i)
Range("A2:A1100").SpecialCells(xlCellTypeVisible).EntireRow.Delete
Next i

ActiveSheet.ShowAllData

End Sub

Grüße
EarlFred