Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1100to1104
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Leerzeilen löschen
Lemmi
Hallo und guten morgen zusammen,
ich führe regelmäßig einen Datenbank import aus.
Die Datenzeilen sind hier aus verschiedenen Gründen nur lückenhaft gelistet.
z. B
Zeile 5 -10 hat Daten
Zeile 11-20 hat keine Daten
Zeile 21-30 hat Daten
Zeile 31 -35 hat keine Daten
usw.
Gibt es einen Code der die Zeilen prüft und wenn sie keinen Inhalt aufweisen diese löscht?
Der Code soll erst ab Zeile 5 wirksam sein!
Gruß
Lemmi

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Leerzeilen löschen
13.09.2009 08:49:27
Gerd
Guten Morgen Lemmi,
Sub Lücken_raus()
ActiveSheet.Range(Cells(5, 1), Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeBlanks). _
EntireRow.Delete
End Sub
Gruß Gerd
AW: Leerzeilen löschen
13.09.2009 09:01:56
Lemmi
Guten morgen Gerd,
...und jetzt schmeck das Frühstück einfach doppelt gut !
Vielen Danke !
Gruß
Egbert
noch eine
13.09.2009 09:03:05
Tino
Hallo,
Version die die ganze Zeile prüft ob diese leer ist.
Function FindLetzte(mySH As Worksheet) As Range
Dim LRow As Long, LCol As Long
Dim A As Long
 
 With mySH.UsedRange
   On Error Resume Next
        'Finde Zeile 
        LRow = .Find("*", , xlValues, xlWhole, xlByRows, xlPrevious, False, False).Row
        LRow = Application.Max(LRow, .Find("*", , xlFormulas, xlWhole, xlByRows, xlPrevious).Row)
        If LRow = 0 Then LRow = 1
   
        'Finde Spalte 
        For A = .Columns(.Columns.Count).Column To .Columns(1).Column Step -1
              LCol = mySH.Columns(A).Find("*", , xlValues, xlWhole, xlByRows, xlPrevious).Row
              LCol = Application.Max(LCol, mySH.Columns(A).Find("*", , xlFormulas, xlWhole, xlByRows, xlPrevious).Row)
              If LCol > 1 Then: LCol = A: Exit For
        Next A
        If LCol = 0 Then LCol = 1
 End With
 
 Set FindLetzte = mySH.Cells(LRow, LCol)
End Function

Sub LoescheLeere()
Dim Bereich As Range
Dim iCalc As Integer

With Application
  iCalc = .Calculation
 .ScreenUpdating = False
 .EnableEvents = False
 .Calculation = xlCalculationManual
    
    With Sheets("Tabelle1") 'Tabellenname anpassen 
        Set Bereich = FindLetzte(Sheets(.Name)) 'letzte Zelle finden 
      
      If Bereich.Row > 4 Then 'prüfen ob letzte erst ab Zeile 5 
        Set Bereich = .Range(.Cells(5, Bereich.Column), Bereich).Offset(0, 1)
        Bereich.FormulaR1C1 = "=IF(COUNTIF(RC1:RC[-1],"""")<COLUMN()-1,ROW(),TRUE)"
        .Range("A5", Bereich).Sort Key1:=Bereich(1, 1), Order1:=xlAscending, Header:=xlNo
        
        On Error Resume Next
        Bereich.SpecialCells(xlCellTypeFormulas, 4).EntireRow.Delete
        On Error GoTo 0
        
        Bereich.EntireColumn.Delete
      End If
    
    End With
 
 .Calculation = iCalc
 .ScreenUpdating = True
 .EnableEvents = True
End With

End Sub
Gruß Tino
Anzeige
AW: Leerzeilen löschen mit Sortieren
13.09.2009 11:24:57
Daniel
Hi
da beim Sortieren leere Zellen ans Ende gestellt werden, kann man leere Datenzeilen auch durch sortieren entfernen.
Das ist, je nach Aufbau der Datei u.U. noch schneller als löschen:
ActiveSheet.Usedrange.Offset(4,0).Sort Key1:=Cells(5,1), Order1:=xlascending, Header:=xlno
Geht natürlich nur, wenn die Daten sortiert werden dürfen, das sollte bei einem ordentlichen Datenbankabzug aber der Fall sein.
Gruß, Daniel

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige