Supportnet / Forum / Tabellenkalkulation
Löschen von leeren Zellen
Frage
hallo,
ich habe eine aufreihung von mehreren zellen untereinander, jedoch sind dort in unregelmäßigen abständen leerzeilen drin. gibt es eine möglichkeit diese leerzeilen zu löschen, ohne dies manuell machen zu müssen?
Antwort 1 von nighty
hi all :)
ein beispiel :)
gruss nighty
spalte a wird auf "" überprüft und bei fund dessen zeile gelöscht
Option Explicit
Sub such()
Dim suche As Range
Dim zeilen As Long
Dim zaehler As Long
zeilen = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Do While zaehler < zeilen
zaehler = zaehler + 1
Set suche = Sheets(1).Range("A" & zaehler & ":A" & zeilen).Find("", LookIn:=xlValues)
If Not suche Is Nothing Then
Sheets(1).Range(suche.Row & ":" & suche.Row).Delete Shift:=xlUp
zeilen = zeilen - 1
End If
Loop
End Sub
ein beispiel :)
gruss nighty
spalte a wird auf "" überprüft und bei fund dessen zeile gelöscht
Option Explicit
Sub such()
Dim suche As Range
Dim zeilen As Long
Dim zaehler As Long
zeilen = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Do While zaehler < zeilen
zaehler = zaehler + 1
Set suche = Sheets(1).Range("A" & zaehler & ":A" & zeilen).Find("", LookIn:=xlValues)
If Not suche Is Nothing Then
Sheets(1).Range(suche.Row & ":" & suche.Row).Delete Shift:=xlUp
zeilen = zeilen - 1
End If
Loop
End Sub
Antwort 2 von JoeKe
Hallo 829558,
oder so:
Sub zellen_löschen()
Application.ScreenUpdating = False
Dim zelle As Range, zeile As Long
For zeile = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For Each zelle In Range("A1:A" & zeile)
If zelle = "" Then
zelle.Delete Shift:=xlUp
End If
Next
Next
Application.ScreenUpdating = True
End Sub
MfG
JöKe
oder so:
Sub zellen_löschen()
Application.ScreenUpdating = False
Dim zelle As Range, zeile As Long
For zeile = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For Each zelle In Range("A1:A" & zeile)
If zelle = "" Then
zelle.Delete Shift:=xlUp
End If
Next
Next
Application.ScreenUpdating = True
End Sub
MfG
JöKe
Antwort 3 von Hansen
Hallo JöKe,
würde er da nicht evt zeilen weglassen, da wenn eine zelle gelöscht wurde auch neu gezählt wird und er so "verrutscht".
Bsp
Zelle 5 und 6 sind leer:
zeile ist bei 5 und sie wird gelöscht , dann ist die zelle 6 jetzt zelle 5, zeile ist bei 6 und überspringt die neue zelle 5 ehemals 6
ohh man, glaube koplizierter hätte man es nicht ausdrücken können :-D
müsste also bei dir heissen:
Sub zellen_löschen()
Application.ScreenUpdating = False
Dim zelle As Range, zeile As Long
For zeile = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
For Each zelle In Range("A1:A" & zeile)
If zelle = "" Then
zelle.Delete Shift:=xlUp
End If
Next
Next
Application.ScreenUpdating = True
End Sub
würde er da nicht evt zeilen weglassen, da wenn eine zelle gelöscht wurde auch neu gezählt wird und er so "verrutscht".
Bsp
Zelle 5 und 6 sind leer:
zeile ist bei 5 und sie wird gelöscht , dann ist die zelle 6 jetzt zelle 5, zeile ist bei 6 und überspringt die neue zelle 5 ehemals 6
ohh man, glaube koplizierter hätte man es nicht ausdrücken können :-D
müsste also bei dir heissen:
Sub zellen_löschen()
Application.ScreenUpdating = False
Dim zelle As Range, zeile As Long
For zeile = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
For Each zelle In Range("A1:A" & zeile)
If zelle = "" Then
zelle.Delete Shift:=xlUp
End If
Next
Next
Application.ScreenUpdating = True
End Sub
Antwort 4 von JoeKe
@Hansen,
Nein das läuft auch so. ;-)
Gruß
Jörg
Nein das läuft auch so. ;-)
Gruß
Jörg
Antwort 5 von Hansen
Schön immer dazu zu lernen :-)
ne idee wo mein Problem liegen könnte? Beitrag mit dem Überlauf...
ne idee wo mein Problem liegen könnte? Beitrag mit dem Überlauf...
Antwort 6 von 829558
hallo,
erst einmal vielen dank für die rückmeldung. also ich habe die makros ausprobiert und für meinen fall hat der von JöKe und Hansen beide funktioniert.
danke noch mal.
gruß
erst einmal vielen dank für die rückmeldung. also ich habe die makros ausprobiert und für meinen fall hat der von JöKe und Hansen beide funktioniert.
danke noch mal.
gruß

