wenn in Spalte B in Zelle dies "40800E4-T" enthalten ist, dann soll die Zeile gelöscht werden.
Die letzte Zelle mit Inhalt kann in Spalte A ermittelt werden.
Wie mache ich das per VBA?
Besten Dank im Voraus!
Viele Grüße,
Selma
Sub Loesche_Wenn_B_40800E4T()
Dim iCalc As Integer
Dim Sh_Tabelle1 As Worksheet
Set Sh_Tabelle1 = Sheets("Tabelle1") 'Deine Tabelle anpassen
With Application
iCalc = .Calculation
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
With Sh_Tabelle1.UsedRange
With .Columns(.Columns.Count).Offset(0, 1)
'=WENN($B2="40800E4-T";WAHR;ZEILE())
.FormulaR1C1 = "=IF(RC2=""40800E4-T"",TRUE,ROW())"
Sh_Tabelle1.UsedRange.Sort .Cells(1, 1), xlAscending, , , , , , xlNo
On Error Resume Next
.Cells.SpecialCells(xlCellTypeFormulas, 4).EntireRow.Delete
On Error GoTo 0
.EntireColumn.Delete
End With
End With
.ScreenUpdating = True
.EnableEvents = True
.Calculation = iCalc
End With
End Sub
Gruß Tino
.FormulaR1C1 = "=IF(RC2=""40800E4-T"",TRUE,ROW())"
' in:
.FormulaR1C1 = "=IF(ISERROR(FIND(""40800E4-T"",RC2)),ROW(),TRUE)"
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort.FormulaR1C1 = "=IF(CountIF(RC2;(""*40800E4-T*""),TRUE,ROW())"
andererseits, wenn die Datenmenge nicht allzugross ist, könnte man auch einfach den Autofilter entsprechend setzen und dann die Sichtbaren Zeilen löschen.Sub Loesche_Wenn_B_40800E4T()
Dim iCalc As Integer
Dim Sh_Tabelle1 As Worksheet
Set Sh_Tabelle1 = Sheets("Tabelle2") 'Deine Tabelle anpassen
With Application
iCalc = .Calculation
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
With Sh_Tabelle1.UsedRange
With .Columns(.Columns.Count).Offset(0, 1)
.Cells.NumberFormat = "General"
.FormulaR1C1 = "=IF(ISERROR(FIND(""40800E4-T"",RC2)),ROW(),TRUE)"
Sh_Tabelle1.UsedRange.Sort .Cells(1, 1), xlAscending, , , , , , xlNo
On Error Resume Next
.Cells.SpecialCells(xlCellTypeFormulas, 4).EntireRow.Delete
On Error GoTo 0
.EntireColumn.Delete
End With
End With
.ScreenUpdating = True
.EnableEvents = True
.Calculation = iCalc
End With
End Sub
Gruß TinoSub Makro1()
With ActiveSheet.UsedRange
.AutoFilter Field:=2, Criteria1:="=*40800E4-T*", Operator:=xlAnd
.Offset(1, 0).SpecialCells(xlCellTypeVisible).Delete
.AutoFilter
End With
End Sub
aber für so einfache Makros zu schreiben bist du doch eigentlich lang genug dabei.