Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1076to1080
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
Inhaltsverzeichnis

Doppelte und Leerzeilen löschen

Doppelte und Leerzeilen löschen
04.06.2009 13:29:11
Tim
Hallo.
ich brauche ein Makro, welches in Spalte B durchsucht und alle Zeilen löscht, die einen doppelten (Text) Inhalt in der Spalte haben. Zudem müssen gleichzeitig alle Leerzeilen gelöscht werden.
Am liebsten wäre es mir, wenn zunächst die Leerzeilen gelöscht werden und alle doppelten Einträge farblich markiert (Zellfarbe) werden und erst nach Aufforderung dann diese auch gelöscht werden. Dann hat man als Anwender noch mal eine Kontrolle.
Danke!
Tim

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

Betreff
Datum
Anwender
Anzeige
Löschen
04.06.2009 13:46:12
Backowe
Hi Tim,
VBA-Code:
Option Explicit
Sub LeerzeilenLoeschen()
Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Sub DoppelteMarkieren()
Dim i As Long
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
  If Application.CountIf(Range(Cells(2, "B"), Cells(i, "B")), Cells(i, "B")) > 1 Then _
    Cells(i, "B").Interior.ColorIndex = 3
Next
End Sub
Sub DoppelteLoeschen()
Dim i As Long
For i = Cells(Rows.Count, "B").End(xlUp).Row To 2 Step -1
  If Cells(i, "B").Interior.ColorIndex = 3 Then _
    Cells(i, "B").EntireRow.Delete
Next
End Sub
Gruß Jürgen
AW: Löschen
Tim

Und das jetzt in ein Modul? Und dann laufen die alle nacheinander ab?
Ja die Subs kommen in ein Modul
Backowe

Hi Tim,
so wie es momentan geschrieben ist, müssen die 3 Subs nacheinander gestartet werden, um Deinen Anforderungen bzgl. Löschen gerecht zu werden, kann man auch 2 Subs daraus machen. Du wolltest doch eine Eingriffmöglichkeit haben, bevor die Zeilen mit doppeltem Inhalt gelöscht werden, die Zellen werden rot eingefärbt.
VBA-Code:
Option Explicit
Sub LeerzeilenLoeschenUndDoppelteMarkieren()
Dim i As Long
If Application.CountBlank(Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row)) > 0 Then _
  Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
  If Application.CountIf(Range(Cells(2, "B"), Cells(i, "B")), Cells(i, "B")) > 1 Then _
    Cells(i, "B").Interior.ColorIndex = 3
Next
End Sub
Sub DoppelteLoeschen()
Dim i As Long
Application.ScreenUpdating = False
For i = Cells(Rows.Count, "B").End(xlUp).Row To 2 Step -1
  If Cells(i, "B").Interior.ColorIndex = 3 Then _
    Cells(i, "B").EntireRow.Delete
Next
Application.ScreenUpdating = True
End Sub
Gruß Jürgen
AW: Ja die Subs kommen in ein Modul
Tim

Hallo Jürgen,
ja, super. Habe die ersten beiden jetzt mit main verbunden und dann start ich das löschen manuell. Super. So wollte ich es haben. Vielen Dank!
Anzeige
AW: Löschen
04.06.2009 14:10:21
Tim
Und das jetzt in ein Modul? Und dann laufen die alle nacheinander ab?
Ja die Subs kommen in ein Modul
04.06.2009 14:30:43
Backowe
Hi Tim,
so wie es momentan geschrieben ist, müssen die 3 Subs nacheinander gestartet werden, um Deinen Anforderungen bzgl. Löschen gerecht zu werden, kann man auch 2 Subs daraus machen. Du wolltest doch eine Eingriffmöglichkeit haben, bevor die Zeilen mit doppeltem Inhalt gelöscht werden, die Zellen werden rot eingefärbt.
VBA-Code:
Option Explicit
Sub LeerzeilenLoeschenUndDoppelteMarkieren()
Dim i As Long
If Application.CountBlank(Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row)) > 0 Then _
  Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
  If Application.CountIf(Range(Cells(2, "B"), Cells(i, "B")), Cells(i, "B")) > 1 Then _
    Cells(i, "B").Interior.ColorIndex = 3
Next
End Sub
Sub DoppelteLoeschen()
Dim i As Long
Application.ScreenUpdating = False
For i = Cells(Rows.Count, "B").End(xlUp).Row To 2 Step -1
  If Cells(i, "B").Interior.ColorIndex = 3 Then _
    Cells(i, "B").EntireRow.Delete
Next
Application.ScreenUpdating = True
End Sub
Gruß Jürgen
AW: Ja die Subs kommen in ein Modul
Tim

Hallo Jürgen,
ja, super. Habe die ersten beiden jetzt mit main verbunden und dann start ich das löschen manuell. Super. So wollte ich es haben. Vielen Dank!
Anzeige
AW: Ja die Subs kommen in ein Modul
04.06.2009 14:35:27
Tim
Hallo Jürgen,
ja, super. Habe die ersten beiden jetzt mit main verbunden und dann start ich das löschen manuell. Super. So wollte ich es haben. Vielen Dank!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige