Registriert seit: 07.09.2017
Version(en): Microsoft 365
26.11.2018, 10:33
(Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2018, 10:36 von DeLaGhetto.)
Hallo zusammen,
ich habe eine relativ lange Datantabelle (Tabellenname "Import").
Die Anzahl der Zeilen schwankt immer relativ stark (mal 2500, mal 4000 Zeilen, usw.)
Ich würde jetzt gerne ein Makro haben, dass in dieser Tabelle in der Spalte R nach leeren Zellen sucht und dann die ensprechende Zeile komplett löscht.
Ist das möglich?
Danke und Gruß
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
Muss es denn zwingend ein Makro sein? Wieso nicht einfach mittels Autofilter nur die leeren Zellen anzeigen und danach alle Zeilen auf einmal löschen? Das sind 5 Mausklicks.
Schöne Grüße
Berni
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
Sub LeereZellenInSpalteRweg()
Range("R:R").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Gruß Uwe
Registriert seit: 11.04.2014
Version(en): Office 2003 - Office 2007 - Office 365
Hallo,
ich habe hier nicht die Möglichkeiten, wie andere ...
Dieser Code muss nur noch angepasst werden.
Code:
Option Explicit
Sub Leer()
Dim Zeile As Variant
For Zeile = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
'Hier wird der Arbeitsbereich angegeben
With Range(Cells(Zeile, 1), Cells(Zeile, 14))
If Application.WorksheetFunction.CountBlank(.Cells) = .Cells.Count Then
Rows(Zeile).Delete
End If
End With
Next
End Sub
Lg
Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
Hallo Marcus,
noch als Tipp - verwende für diesen Fall unbedingt Application.Screenupdating = False, sonst schläft dir bei 4000 Zeilen vermutlich das Gesicht ein.
Schöne Grüße
Berni
Registriert seit: 07.09.2017
Version(en): Microsoft 365
(26.11.2018, 10:42)MisterBurns schrieb: Muss es denn zwingend ein Makro sein? Wieso nicht einfach mittels Autofilter nur die leeren Zellen anzeigen und danach alle Zeilen auf einmal löschen? Das sind 5 Mausklicks.
Leider Ja, denn die Tabelle wird noch weiter ausgewertet mit einer Pivot Tabelle und dafür müssen dann nur die beschrifteten Zellen drin sein.
Registriert seit: 11.04.2014
Version(en): Office 2003 - Office 2007 - Office 365
Hallo Berni,
Hast recht ... Nach 10 Jahren Excelfreiheit vergisst man einiges. Danke für deinen Hinweis.
Lg
Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Registriert seit: 07.09.2017
Version(en): Microsoft 365
(26.11.2018, 11:00)Kuwer schrieb: Hallo,Sub LeereZellenInSpalteRweg()
Range("R:R").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Gruß Uwe
Das funktioniert leider nicht
Registriert seit: 07.09.2017
Version(en): Microsoft 365
(26.11.2018, 11:04)marose67 schrieb: Hallo,
ich habe hier nicht die Möglichkeiten, wie andere ...
Dieser Code muss nur noch angepasst werden.
Code:
Option Explicit
Sub Leer()
Dim Zeile As Variant
For Zeile = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
'Hier wird der Arbeitsbereich angegeben
With Range(Cells(Zeile, 1), Cells(Zeile, 14))
If Application.WorksheetFunction.CountBlank(.Cells) = .Cells.Count Then
Rows(Zeile).Delete
End If
End With
Next
End Sub
Lg
Marcus
Sorry, anscheinend bin ich zu blöd dafür das für die Spalte R einzustellen.
Wie mache ich das?
Dank schon im Voraus...
Registriert seit: 11.04.2014
Version(en): Office 2003 - Office 2007 - Office 365
Hallo,
das war eigentlich keine schwere Aufgabe ;
Welche Zahl hat der Buchstabe "R"? Ich weiß aber wie es ist sich nicht mit Makros auszukennen ..., ich fange auch gerade wieder alles neu an. Probiere folgenen Code:
Code:
Option Explicit
Sub Leer()
Dim Zeile As Variant
Application.ScreenUpdating = False
For Zeile = Cells(Rows.Count, 18).End(xlUp).Row To 1 Step -1
'Hier wird der Arbeitsbereich angegeben
With Range(Cells(Zeile, 1), Cells(Zeile, 18))
If Application.WorksheetFunction.CountBlank(.Cells) = .Cells.Count Then
Rows(Zeile).Delete
End If
End With
Next
Application.ScreenUpdating = True
End Sub
Wünsche Dir noch einen schönen Tag
Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.