PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Excel2010 , Visual Basic Hilfe bei Daten Filtern


Radeonator
2012-05-08, 08:50:50
Moin Moin,

möchte aus einer Tabelle Daten vergleichen und bei bestimmten Kriterien löschen.

Bsp.: In jeder Zeile soll Spalte C und D verglichen werden, ob in der jeweiligen Zeile jeweils 2-4 Stellige Nummern sind und dann gelöscht werden.

+++C ++++++ D +++++
1----999999---------20
2----12-------------20 <---LÖSCHEN (Gesammte Zeile!)
3----99999---------20
4----123-----------20 <---LÖSCHEN (Gesammte Zeile!)

Rockhount
2012-05-08, 09:51:18
Gemäß dem Fall, dass sonst nix im Datenblatt steht (Speziell in Spalte E):

Das ganze ist 0% optimiert, da ich was VBA angeht auch nicht wirklich gut bin.
Aber ich wollte es gern mal probieren, daher bitte nur an einer Sicherheitskopie der Datei anwenden!!!

Du müsstest die Bedingung (2-4 stellige Zahl) im Idealfall GENAU definieren, welche Zahlen kommen da so vor und welche sollten genau gelöscht werden?

Für den Fall, dass die Bedingung > 4 Stellen ok ist, kannst Du folgende Query nutzen:


Sub Makro1()
Dim lengthD As Integer
Application.ScreenUpdating = False

lengthD = Range("D65536").End(xlUp).Row
Range("e1").FormulaR1C1 = "=IF(LEN(RC[-2])>4,1,0)"
Range("e1").Select
Selection.AutoFill Destination:=Range("E1:E" & lengthD)

For i = 1 To lengthD
If Range("E" & i) = "" Then
Columns("e:e").Delete Shift:=xlToLeft
Application.ScreenUpdating = True
Exit Sub
End If

If Range("E" & i) = 0 Then
Rows(i & ":" & i).Delete Shift:=xlUp
i = i - 1
End If
Next i
Columns("e:e").Delete Shift:=xlToLeft
Application.ScreenUpdating = True

End Sub

Rockhount
2012-05-09, 09:25:28
mal getestet?