Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
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

Dubletten mit vertauschten Datenfeldern

Dubletten mit vertauschten Datenfeldern
12.02.2015 09:29:59
Claudius20
Hallo, liebe Teilnehmer,
ich möchte vertauschte Dubletten löschen: In den Spalten F und G findet sich
je ein Vokabel-Gegensatzpaar, z.B. "heiß" und "kalt". Dieses tritt z.B. innerhalb
einer langen Liste in einem Datensatz auf und dann an einer anderen Stelle
vertauscht noch einmal, z.B. als "kalt" und "heiß". Die Dublettenbeseitigungs-
funktion ab Excel 2007 hilft hier nicht. Ich habe deshalb folgenden Makro
entwickelt, der jedoch leider nicht funktioniert (in obigem Beispiel sollen dadurch
alle Datensätze, die in den Spalten F und G vertauschte Werte wie "kalt" und "heiß"
haben, gelöscht werden (vor Einsatz des Makros wurden die normalen, nicht vertauschten
Dubletten bereits mit der bekannten Dublettenentfernungsfunktion von Excel
beseitigt):
Public Sub LoescheVertauschteDubletten()
Dim Wert1 As String
Dim Wert2 As String
Dim Rng As Range
Dim i As Long
On Error GoTo Irrtum
With ActiveWorkbook.Sheets("Zuord")
For i = 501 To 2 Step -1
If IsNull(.Cells(i, 7)) = False Then
Wert1 = .Cells(i, 7)
Else
GoTo Weiter
End If
If IsNull(.Cells(i, 6)) = False Then
Wert2 = .Cells(i, 6)
Else
GoTo Weiter
End If
Set Rng = .Range("F2:F501").Find(What:=Wert1)
'                            After:=.Cells(.Cells.Count), _
'                            LookIn:=xlValues, _
'                            LookAt:=xlWhole, _
'                            SearchOrder:=xlByRows, _
'                            SearchDirection:=xlNext, _
'                             MatchCase:=False)
Do While Not Rng Is Nothing
Application.Goto Rng, True
If .Cells(Rng.Row, ActiveCell.Column) = Wert2 Then
.Rows(i).Delete shift:=xlUp
End If
Set Rng = .Range("F2:F501").FindPrevious
Loop
Weiter:
Next i
End With
Irrtum:
MsgBox "Fehler aufgetreten"
Exit Sub
Set Rng = Nothing
End Sub
Weiß jemand Rat, wo der Fehler liegen könnte? (Die Liste hat 500 Datensätze.)

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dubletten mit vertauschten Datenfeldern
12.02.2015 09:40:23
Daniel
Hi
ohne VBA würde ich das so lösen:
1. sortiere in einer Hilfsspalte per Formel die Wortpaare alphabetisch
=Wenn(F2<G2;F2&"-"&G2;G2&"-"F2)
2. wende dann das Duplikate-entfernen auf die Tabelle mit der Hilfsspale als kriteriumsspalte an
mit VBA würde ich das genauso lösen.
Das Einfügen der Formel und das Duplikate entferenen kannst du ja mit dem Recorder aufzeichen, daher gehe ich mal davon aus, dass ich den Code dazu nicht für dich schreiben muss.
Gruß Daniel

AW: Dubletten mit vertauschten Datenfeldern
12.02.2015 09:54:35
Claudius20
Hallo Daniel,
diese Lösung gefällt mir sehr! Das sehe ich jetzt auf den ersten Blick, dass man das Hilfsfeld
mit der entsprechenden Excel-Funktion von Dubeltten befreien kann. Nur darauf gekommen wäre ich
selbst nicht ohne weiteres.
Vielen herzlichen Dak!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige