Zeilen löschen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Zeilen löschen
von: R
Geschrieben am: 13.04.2005 16:06:24
Hallo!
Ich habe folgendes Problem:
Ich habe eine Spalte mit Zeitungstitel. Durch ein UserForm kommen ständig neue Titel dazu. Ich möchte nun am Ende die Titel in der ersten Spalte untereinander vergleichen und aufgrund der doppelten Titel die jeweilige Zeile, wo der Titel das zweitemal (oder drittemal) drinnen steht, löschen. Also wenn A2 denselben Wert hat wie A1, so möchte ich die gesamte Zeile 2 löschen. Das soll nun für alle Zellen in der Spalte A passieren. Am Ende sollen keine doppelten Einträge mehr in der Tabelle sein.

Bild

Betrifft: Eine Möglichkeit...
von: RolfK
Geschrieben am: 13.04.2005 16:48:04
Hallo R,
versuchs mal mit Daten/Filter/Spezialfilter und 'keine Duplikate' anklicken.
Rolf
Bild

Betrifft: AW: Zeilen löschen
von: Johannes
Geschrieben am: 13.04.2005 16:56:52
Hallo R!
anbei eine Datei mit der Du Dein Problem unter Einbau einer Hilfsspalte (hier B) lösen kannst.
https://www.herber.de/bbs/user/21106.xls
Gruß
Johannes
PS. Auch wenn es leider notwendig war eine Registrierung durch zuführen, finde ich einen Klartext für Deinen Namen schon netter als ein nur ein R.
Bild

Betrifft: AW: Zeilen löschen
von: Rainer
Geschrieben am: 14.04.2005 08:32:04
Danke Johannes und natürlich, ich kann meinen Namen angeben, bin ja auch registriert...
Zu dem Beispiel: Es kommt die Variable 'C' vor. Die ist nicht definiert. Im Beispiel funktioniert es, wenn ich den Code in mein Makro einbaue, funkts aber aus eben diesem Grund nicht mehr.
Mein Code:
'doppelte Zeilen löschen
Dim rng As Range
Dim Zelle As Range
Dim lngR As Long
Dim lngC As Long
If Selection.Columns.Count > 1 Then Selection.Columns(1).Select
Set rng = Range("A2:A150")
lngR = rng.Rows.Count
For Each Zelle In rng
For lngC = 1 To lngR
With Zelle
If .Value <> "" And .Offset(, 1) <> "1" And .Offset(, 1) <> "0" Then
If Zelle = rng(lngC) Then
Zelle.Offset(, 1) = "0"
rng(lngC).Offset(, 1) = "1"
End If
End If
End With
Next
Next
'löschen der doppelten Zeilen
For Each C In Worksheets("Tabelle 1").Range("B2:B150").Cells
If Abs(C.Value) = 0 Then C.Value = ""
Next
On Error Resume Next
Application.Intersect(Range("B2:B150"), _
Cells.SpecialCells(xlCellTypeBlanks)).EntireRow.Delete
'löschen der Inhalte in der Hilfsspalte
Range("B2:B150").Select
Selection.ClearContents
Range("A1").Select
Noch eine Frage dazu: Wenn ich als Hilfsspalte beispielsweise Spalte 'C' nehmen möchte, muss ich den Offset Wert auf 2 erhöhen. Stimmt das?

Bild

Betrifft: AW: Zeilen löschen
von: Johannes
Geschrieben am: 14.04.2005 13:36:31
Hallo Rainer,
Du hast mit [Option Explicit] in Deiner Datei VBA gezwungen alle Variablen zu deklarieren - grundsätzlich ist das auch gut so, denn dann vergisst man eben nicht dies zu tun. Ich habe das nachgeholt und die Hilfsspalte auf Spalte C verlegt. Du hast Recht Du musst lediglich den Offset auf 2 ändern.
Gruß Johannes
https://www.herber.de/bbs/user/21142.xls
Bild

Betrifft: AW: Zeilen löschen
von: Rainer
Geschrieben am: 14.04.2005 15:28:14
Bin schon selbst drauf gekommen, vielen Dank nochmal!
:-)
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeilen löschen"