PDA

Vollständige Version anzeigen : Spalte G leere löschen


max.70
04.07.2015, 07:40
Hallo Forum,

Ich würde mal wieder gern Eure Hilfe in Anspruch nehmen.
Ich kämpfe mit einem Problem das ich gern mit VBA lösen möchte, mir fehlt dazu aber leider das Grundwissen. Der Recorder bringt mich nicht zu gewünschten Ziel, da es sich immer um unterschiedlich viele Datensätze handelt.
Ich werde mal beschreiben was das Makro machen sollte und wenn sich jemand der Sache annehmen könnte wäre mir sehr geholfen.
Es soll in Spalte G der letzte Eintrag gesucht werden und nach oben geprüft ob Zellen in Spalte G leer und wenn ja die ganze Zeile löschen. Alle nichtleeren in Spalte G lassen wie sie sind. Eine Bsp. Datei habe ich im Anhang.
Einen Filter setzen und händig löschen hilft mir nicht weiter, da das Makro ein Teil einer weitern Verarbeitung werden soll.
Danke schon mal für die Mühe, bei diesem Temperaturen.

Mit freundlichen Grüßen
Max

Beverly
04.07.2015, 08:01
Hi max,

benutze den Autofilter

Sub LeereLoeschen()
If ActiveSheet.AutoFilterMode = False Then Range("A1:M1").AutoFilter
Range("A1:M1").AutoFilter Field:=7, Criteria1:="="
ActiveSheet.AutoFilter.Range.Columns(7).SpecialCells(xlCellTypeBlanks).Rows.Dele te
Range("A1:M1").AutoFilter
End Sub


<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

RPP63neu
04.07.2015, 08:03
Hallo!
Das geht mit einem Einzeiler:
Sub WegDamit()
Tabelle1.Columns(7).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Gruß Ralf

harry1972
04.07.2015, 08:58
Sub LeerzellenGLöschen()
Dim t As Worksheet
Set t = Sheets("Ist_zustand")

'Extreme beschleuchigung
Application.ScreenUpdating = False

maxrow = t.UsedRange.Rows.Count
For i = maxrow To 1 Step -1
If t.Cells(i, 7).Value = "" Then
t.Rows(i).Delete
i = i + 1
End If
Next i

Application.ScreenUpdating = True

End Sub


Damit sollte es gehen.

RPP63neu
04.07.2015, 09:05
Hallo Harry!
Willkommen im Forum!
Nichts für ungut:
Deine "extreme Beschleunigung" ist Murks!
Es gibt in Excel nichts langsameres, als Zeilen per Schleife zu löschen!
Entweder - wie bei Karin - sichtbare Zeilen nach Filterung, oder - wie bei mir - gleich in einem Rutsch löschen.

Warum zählst Du in einer For ... To Schleife Deine Zählvariable per i = i + 1 hoch?

Gruß Ralf

max.70
04.07.2015, 11:29
Hallo,

ich danke Euch allen für die schelle Hilfe, wie immer werden hier für mich unlösbare Probleme gelöst.
Danke habt mir sehrt geholfen.

Allen ein schönes sonniges WE

LG Max