Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro Leere Zelle finden und gesamte Zeile löschen
#1
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ß
Antworten Top
#2
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
Antworten Top
#3
Hallo,
Sub LeereZellenInSpalteRweg()
Range("R:R").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Gruß Uwe
Antworten Top
#4
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.
Antworten Top
#5
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
Antworten Top
#6
(26.11.2018, 09: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.
Antworten Top
#7
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.
Antworten Top
#8
(26.11.2018, 10:00)Kuwer schrieb: Hallo,
Sub LeereZellenInSpalteRweg()
 Range("R:R").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Gruß Uwe

Das funktioniert leider nicht
Antworten Top
#9
(26.11.2018, 10: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...
Antworten Top
#10
Hallo,

das war eigentlich keine schwere Aufgabe ;Wink 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.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste