ich habe in einer Spalte Nummern verschiedener Länge. Jetzt möchte ich alle Zellen mit weniger als 8 Zahlen löschen. Optimal wäre noch eine InBox, in der ich die Anzahl frei bestimmen kann.
Vielen Dank schon mal
Boernie
Sub löschen()
Dim MinLänge As Long
MinLänge = Application.InputBox("Mindesanzahl Zeichen", Type:=1)
If MinLänge = 0 Then Exit Sub
With ActiveSheet.UsedRange
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=IF(Len(RC1)
die Spaltennummer der Spalte, welche überprüft wird, gibst du hier an, im Beispiel die Spaltennummer 1 für Spalte A:Private Sub TT()
On Error GoTo Fehler
Dim TB As Worksheet, SP As Integer, EZ As Integer, LR As Double, Anz As Integer
'*** Stammdaten Anfang
Set TB = Sheets("Tabelle1")
SP = 3 'Spalte C
EZ = 2 'ab Zeile.. wegen Überschrift
'*** Stammdaten Ende
If TB.AutoFilterMode Then TB.AutoFilterMode = False ' Autofilter ausschalten
LR = TB.Cells(TB.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
Anz = InputBox("Anzahl Zeichen?", "Löschen", 8)
TB.Cells(EZ - 1, SP).Resize(LR).AutoFilter Field:=1, Criteria1:="<" & 10 ^ (Anz - 1) _
, Operator:=xlAnd
If WorksheetFunction.CountIf(Columns(SP), "<" & 10 ^ (Anz - 1)) > 1 Then
TB.Rows(EZ).Resize(LR).Delete Shift:=xlUp
Else
MsgBox "Keine Werte vorhanden"
End If
TB.AutoFilterMode = False ' Autofilter ausschalten
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number <> 0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub