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.Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen