in meinem Kopf klingt das so leicht, ich kriege es aber ohne Hilfe einfach nicht hin:
Ziel: Ich versuche, dass in allen Arbeitsblättern in meiner Mappe die Zeilen gelöscht werden, wenn der entsprechende Spaltenwert (Spalte C) leer ist.
Also z.B.:
Wenn D3 leer, dann Zeile 3 löschen.
Dazu habe ich bereits folgende Möglichkeiten gefunden. (Manche Lösungen sind für Einzelblätter, das wollte ich dann für die Mappe ausweiten, wenn ich es denn zum Laufen gekriegt hätte.)
Entweder funktionieren sie aber nicht oder laufen eine Ewigkeit, ohne, dass etwas sichtbar passiert und ich Excel mit dem Task-Manager killen muss.
Option Explicit
Sub Zeile_loeschen()
Dim x As Integer
Dim ende, iRow As Long
For x = 1 To Sheets.Count
ende = Sheets(x).Cells(Rows.Count, 1).End(xlUp).Row
For iRow = ende To 1 Step -1
If Sheets(x).Cells(iRow, 3) = "" Then Sheets(x).Rows(iRow).Delete
Next iRow
Next x
End Sub
Public Sub Test()
Dim objWorksheet As Worksheet
For Each objWorksheet In ThisWorkbook.Worksheets
Call objWorksheet.Rows(7).Delete
Next
End Sub
Sub Makro3()Columns(1).Insert
With Range("C40:C" & Cells(Rows.Count, 3).End(xlUp).Row)
.Formula = "=IF(RC[1]="""",true,Row())"
.Formula = .Value
.CurrentRegion.Sort key1:=Cells(1, 3), Order1:=xlAscending, Header:=xlNo
.SpecialCells(xlCellTypeConstants, 3).EntireRow.Delete
End With
Columns(1).Delete
End Sub Sub Zeilen_loeschen()
Dim loeschen As Double
For loeschen = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(loeschen, 3).Value = "" Then
Rows(loeschen).Delete
End If
Next loeschen
End Sub
Public Sub LeereRaus()
Dim WkSh As Worksheet
Dim lLetzte As Long
Dim lZeile As Long
Application.ScreenUpdating = False
Set WkSh = Tabelle59 '
Kann mir da jemand helfen? Also über alle Tabellenblätter wenn Zelle in Spalte C leer, die Zeile löschen.Viele Grüße!
Hendrik
PS: Irgendwie ist da kein Leerzeichen vor dem Sub "leere raus"...kriege ich nicht eingefügt. Sorry dafür.