Wie kann ich mit VBA in einem Sheet alle leeren Zeilen und alle Zeilen, die nur Zellen mit Leerzeichen und/oder leere Zellen beinnhalten, löschen.
Eine Idee?
Danke Edgar
Sub LeereLoeschen()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange
If WorksheetFunction.Trim(rng.Value) = "" Then
rng.ClearContents
End If
Next rng
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlToLeft
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
End Sub
Sub F_ZeileWegWennZelleAgent()
' Zeilen löschen wenn Zelle in Spalte A "Agent" ist
Dim L As Long
Dim ZL As Long
ZL = ActiveSheet.UsedRange.Rows.Count
For L = ZL To 1 Step -1 'Schleife bis zur ersten Zeile
If Cells(L, 1).Value = "Agent" Then Rows(L).Delete
Next L
End Sub
Sub E_ZeileWegWennZelleLeer()
' Zeilen löschen wenn Zelle in Spalte A leer ist
Dim L As Long
Dim ZL As Long
ZL = ActiveSheet.UsedRange.Rows.Count
Range("A1").Select
For L = ZL To 4 Step -1 'hier kannst Du bestimmen welche Zeilen übrig bleiben sollen : hier Zeile 1 bis 3
If Len(ActiveCell.Value) = 0 _
Then Selection.EntireRow.Delete _
Else ActiveCell.Offset(1, 0).Select
Next L
End Sub
Sub LeereZeilenLoeschen()
'Löscht leere Zeilen und Zeilen, deren Zellen leer sind oder nur Leerzeichen enthalten
Dim wks As Worksheet, J As Integer, I As Integer, Spalten As Integer, Reihe As Long
Dim Loeschen As Boolean
Set wks = ActiveSheet
Spalten = wks.UsedRange.Column + wks.UsedRange.Columns.Count - 1
For Reihe = wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1 To 1 Step -1
Loeschen = True
If Application.WorksheetFunction.CountA(wks.Rows(Reihe)) <> 0 Then 'Zellen mit Inhalt in Zeile
'Zellen in Reihe einzeln prüfen
For I = 1 To Spalten
If Not IsEmpty(wks.Cells(Reihe, I)) Then
'Zellen auf Formel Fehlerwert oder Zahl prüfen
If wks.Cells(Reihe, I).HasFormula Or IsError(wks.Cells(Reihe, I)) _
Or IsNumeric(wks.Cells(Reihe, I)) Then
Loeschen = False
Exit For
End If
'Einzelne Zeichen in Zelle mit Text prüfen
For J = 1 To Len(wks.Cells(Reihe, I))
If Mid(wks.Cells(Reihe, I), J, 1) <> " " Then
Loeschen = False
Exit For
End If
Next J
End If
If Loeschen = False Then Exit For
Next I
End If
If Loeschen = True Then wks.Rows(Reihe).Delete
Next Reihe
End Sub