Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
880to884
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
880to884
880to884
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Doppelte Werte finden - beide (!) löschen

Doppelte Werte finden - beide (!) löschen
29.06.2007 10:47:00
Jack
Hallo zusammen!
Nachdem ich zum beliebten Thema "Doppelte" wirklich viele Einträge hier gelesen habe und dennoch ohne Lösung bin, versuche ich es auf diesem Weg.
Ich habe eine sehr umfangreiche Liste, die in einer Spalte teilweise doppelte Werte aufweist. Da mich aber nur die Werte interessieren, die einfach vorkommen, möchte ich die doppelten vollständig löschen. D.h. nicht nur die Duplikate entfernen sondern quasi auch den "Basiswert". Es sollen im Ergebnis also ausschließlich nur die Werte vorhanden sein, die ein einziges Mal vorkommen.
Über einen Filter konnte ich leider nichts machen und gefundene VBA-Codes brachten nicht den gewünschten Effekt. Diese zielen meist darauf ab, Duplikate zu erkennen um den "überschüssigen" Teil zu entfernen, nicht aber beide Werte.
Ich kann mir vorstellen, dass andere auch schon vor dem Problem standen und freue mich über jeden hilfreichen Hinweis. Schonmal vielen Dank im Voraus!
Jack

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Werte finden - beide (!) löschen
29.06.2007 11:09:57
Hajo_Zi
Hallo Jack,
da hast Du aber nicht genau gesucht. Das habe ich in den letzten 14 Tagen mehrmals beantwortet.

Option Explicit
Sub KeineDoppelten_Problem3()
'   erstellt von Hajo.Ziplies@web.deb 10.08.03
'   neue Tabelle anlegen, Sortieren und alle Doppelten löschen
'   Anzahl der doppelten eintragen
Dim LoAnzahl As Long    ' Anzahl der Doppelten
Dim LoI As Long         ' Schleifenvariablen außen
Dim LoJ As Long         ' Schleifenvariable innen
Dim ByAnzahl As Byte
Application.ScreenUpdating = False  ' Bildschirmanzeige aus
'   alte Tabelle Neu löschen und neue tabelle "Neu" mit Inhalt von Tabelle 1
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("Neu").Delete
Application.DisplayAlerts = True
On Error GoTo 0
Worksheets("Tabelle1").Copy Before:=Worksheets(1)
ActiveSheet.Name = "Neu"
'   Sortieren der Daten nach Spalte A ohne Übeschrift
Range("A1").Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("B1"), Order1:= _
xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'   doppelte löschen
LoAnzahl = 1
For LoI = Cells(Rows.Count, 6).End(xlUp).Row - 1 To 1 Step -1
ByAnzahl = 0
For LoJ = 1 To 8
If Trim(Cells(LoI, LoJ)) = Trim(Cells(LoI + 1, LoJ)) Then
ByAnzahl = ByAnzahl + 1
End If
Next LoJ
If ByAnzahl = 8 Then
LoAnzahl = LoAnzahl + 1
Rows(LoI).Delete
Else
'            Cells(LoI + 1, 10) = LoAnzahl
If LoAnzahl > 1 Then Rows(LoI + 1).Delete
LoAnzahl = 1
End If
Next LoI
'    Cells(1, 10) = LoAnzahl
If LoAnzahl > 1 Then Rows(1).Delete
Application.ScreenUpdating = True  ' Bildschirmanzeige ein
Application.CutCopyMode = False    ' Zwischenspeicher löschen
End Sub



Anzeige
AW: Doppelte Werte finden - beide (!) löschen
29.06.2007 11:45:00
Jack
Hallo Hajo,
vielen Dank für Deine schnelle Reaktion. Wäre nett, wenn Du mir ein Link auf einen Deiner Posts geben könntest. Habe gerade nochmal in der Online-Suche nachgesehen und von Dir da leider nichts gefunden (Suchbegriff: Doppelte).
Möchte dort gerne mal nachschauen, da bei mir ein Syntaxfehler angezeigt wird (bei Dim LoAnzahl As Long 'Anzahl der Doppelten). Habe den Code in "DieseArbeitsmappe" eingefügt.
Viele Grüße
Jack

AW: Doppelte Werte finden - beide (!) löschen
29.06.2007 11:54:00
Hajo_Zi
Hallo Jack,
ich hebe nicht zu jedem Beitrag ein Link auf das ist mir zu Aufwendig.
Der Code gehört in ein Modul und wie Du siehst steht oben drüber Option Explicit. Da kannst Du also drauf vertrauen das der Code bei mir gelaufen ist.
Gruß Hajo

Anzeige
AW: Doppelte Werte finden - beide (!) löschen
29.06.2007 13:01:00
Jack
Hallo Hajo,
da mir "Option Explicit" nichts gesagt hat, habe ich dazu mal nachgeschaut und denke, dass ich nun weiß, was es damit auf sich hat.
Habe Deinen Code in ein Modul eingefügt, jedoch erscheint immer noch der Syntaxfehler an gleicher Stelle. An der anderen Stelle habe ich den Code selbstverständlich gelöscht.
Gibt es andere Dinge, die ich hierbei zu berücksichtigen habe? Irgendwelche Selbstverständlichkeiten an die Fortgeschrittene evtl. gar nicht mehr denken? Kenne mich in Sachen VBA leider gar nicht aus.
Danke für Deine Hilfe!
Jack

AW: Doppelte Werte finden - beide (!) löschen
29.06.2007 13:11:23
Hajo_Zi
Hallo Jack,
ich wollte es eigentlich vermeiden meine Datei hochzuladen. Mit dem Code kamen die anderen eigentlich klar ohne Probleme. Schicke mir mal eine Mail über meine HP (geht wieder, Fehler beseitigt), dann schicke ich Dir die Beispieldatei nur zu Deiner persönlichen Verwendung, keine Weitergabe.
Über die Ausführung des Codes brauchen wir uns ja noch nicht austauschen, da der Code bei Dir nicht läuft.
Gruß Hajo

Anzeige
AW: Doppelte Werte finden - beide (!) löschen
29.06.2007 11:18:00
Matthias
Hallo Jack,
meine Variante:

Sub Doppelte_Loeschen()
Const z1 = 1 'Suche ab Zeile 1
Const Sp = 1 ' Werte in Spalte 1 vergleichen
Dim z As Long, z2 As Long
Dim doppelt() As Boolean
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'letzte Zeile ermitteln:
With Cells(Rows.Count, Sp)
If .Value  "" Then
z2 = Rows.Count
Else
z2 = Cells(Rows.Count, Sp).End(xlUp).Row
End If
If z2 = 1 And Cells(1, Sp) = "" Then z2 = 0
End With
Debug.Print z1, z2
If z1  1 Then
doppelt(z) = True
Else
doppelt(z) = False
End If
Next z
'markierte Zeilen löschen
For z = z2 To z1 Step -1
If doppelt(z) Then Rows(z).Delete Shift:=xlUp
Next z
End If
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub


Ist nicht besonders schnell, weil alles in einer Schleife abgearbeitet wird, aber jetzt hab ichs geschrieben, jetzt sollst du es auch haben ;-)
Gruß Matthias

Anzeige
AW: Doppelte Werte finden - beide (!) löschen
29.06.2007 11:56:00
Jack
Hallo Matthias,
dankeschön für die schnelle Reaktion und die Mühe!
Habe leider das Problem, das die Meldung "Sub oder Function nicht definiert" (bei z2 = Rows.Count). Den Code habe ich in "DieseArbeitsmappe" eingefügt und das Makro mit einem Button verknüpft. Muß ich etwas bestimmtes beachten? Kenne mich mit VBA leider gar nicht aus.
Geschwindigkeit ist nicht sooo wichtig, Hauptsache es klappt! Schneller als manuell ist es ganz sicher in jedem Fall ;-)
Nochmal Danke!
Viele Grüße
Jack

AW: Doppelte Werte finden - beide (!) löschen
29.06.2007 11:59:00
Matthias
Hallo Jack,
Wieviele Zeilen sind es denn?
Den Code nicht in "DieseArbeitsmappe", sondern in ein Standardmodul (du kannst es im VB-Editor erzeugen mit dem Menübefehl Einfügen - Modul), es heißt in der Regel" Modul1".
Gruß Matthias

Anzeige
AW: Doppelte Werte finden - beide (!) löschen
29.06.2007 13:08:00
Jack
Hallo Matthias,
es sind rund 5.000 Zeilen, die regelmäßig wiederkommen werden.
Habe es wie Du mir sagtest in ein Modul kopiert, erhalte jedoch noch die gleiche Meldung. An der ursprünglichen Stelle habe ich den Code entfernt.
Habe ich etwas übersehen bzw. mache ich evtl. typische Anfängerfehler?
Danke für Deine Hilfe!
Viele Grüße
Jack

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige