Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: doppelte Datensätze löschen

doppelte Datensätze löschen
09.11.2004 08:33:21
Kerstin
Hallo,
ich habe Datensätze die einer Person zugeordnet sind. Diese Datensätze unterscheiden sich zum Teil in der Kundennummer nicht (doppelt) haben aber eine Zuordnung zu unterschiedlicher Software.
Ich habe die Daten sortiert und möchte gern die doppelten Datensätze (Kundennummer) löschen lassen, obwohl sich die Datensätze an einer Stelle unterscheiden.
Wenn ich einen Spezialfilter verwende, können die doppelten Datensätze ja nicht ausgeblendet werden, weil sie sich ja in der Softwarezuordnung unterschieden.
Wer kann mir dabei helfen?
Im Voraus schon mal herzlichen Dank!
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: doppelte Datensätze löschen
xule
Hallo Kerstin
Ich hab mal in meiner alten Makrosammlung ein Programm aus Vorzeiten gefunden (sähe heute sicherlich anders aus).
Umständlich sind anfangs die erforderlichen Eingaben, dafür aber dann universaleinsetzbar. Funktioniert auch.


      
Public Sub Doppel_löschen()
Dim i%, n%, Z%, j%, S%, s1%, s2%
Dim a As Date, b As Date, C As Date
Dim ErsterWert$, ZweiterWert$
    a = Now
    Application.ScreenUpdating = 
False
'erste Zeile mit Daten
        Mldg = "Nr. der ersten Datenzeile eingeben"
        Titel = 
"Vorbereitungen:" ' Titel festlegen.
        Voreinstellung = "2"    ' Voreinstellung festlegen.
        n = InputBox(Mldg, Titel, Voreinstellung, 2000, 4000)
        
If n < 1 Then GoTo FERTIG:
'Spalte, in der keine leeren Zellen existieren
        Mldg = "Nr. einer Spalte angeben, die keine leeren Zellen enthält"
        Titel = 
"Zeilenanzahl ermitteln" ' Titel festlegen.
        Voreinstellung = "1"    ' Voreinstellung festlegen.
        S = InputBox(Mldg, Titel, Voreinstellung, 2000, 4000)
        
If S < 1 Then GoTo FERTIG:
        
'Das sind die Spalten, in denen die zu vergleichenden Sätze enthalten sind
'Erste Spalte, die durchsucht werden soll
        Mldg = "Nr.(1) der Spalte angeben, die gefiltert werden soll"
        Titel = 
"Filterspalte 1 angeben" ' Titel festlegen.
        Voreinstellung = "1"    ' Voreinstellung festlegen.
        s1 = InputBox(Mldg, Titel, Voreinstellung, 2000, 4000)
        
If s1 < 1 Then GoTo FERTIG:
'Zweite Spalte, die durchsucht werden soll
        Mldg = "Nr.(2) der Spalte angeben, die auch verglichen werden soll"
        Titel = 
"Filterspalte 2 angeben" ' Titel festlegen.
        Voreinstellung = "1"    ' Voreinstellung festlegen.
        s2 = InputBox(Mldg, Titel, Voreinstellung, 2000, 4000)
        
If s2 < 1 Then GoTo FERTIG:
'Zählen der Datensätze
    Z = n
    
Do While Cells(Z, S).Value <> ""
        Z = Z + 1
    
Loop
    vor = Z 
'Anzahl Zeilen vorher
'    Die folgende Schleife löscht alle folgenden Zeilen,
'    in denen die Daten in Spalte s1 und in Spalte s2
'    gleich der gerade mit der ersten For-Schleife gewählten
'    sind
    S = 0
    
For i = n To Z
        ErsterWert = Cells(i, s1).Value
        ZweiterWert = Cells(i, s2).Value
        
'Löschen der Folgezeilen, wenn die genannten Daten gleich sind
        For j = i + 1 To Z
            
If Cells(j, s1).Value = ErsterWert And Cells(j, s2).Value = ZweiterWert Then
                Rows(j).Delete
                j = j - 1
                Z = Z - 1
                
If Z = 0 Then GoTo FERTIG:
                Application.StatusBar = Format(100 * i / Z, 
"0.00") & "%"
            
End If
'###Anstelle Löschen nur rot färben## Bei Bedarf
'            If Cells(j, s1).Value = ErsterWert And Cells(j, s2).Value = ZweiterWert Then
'                Rows(j).Interior.ColorIndex = 3
'                'j = j - 1
'                Z = Z - 1
'                If Z = 0 Then GoTo FERTIG:
'                Application.StatusBar = Format(100 * i / Z, "0.00") & "%"
'            End If
        Next j
    
Next i
FERTIG:
    Application.StatusBar = 
False
    b = Now
    C = 
CDate(b - a)
    gel = vor - Z 
'Anzahl gelöschte Zeilen
    Meldung = "Gelöscht wurden " & gel & " Zeilen. Dauer: " & C
    Application.ScreenUpdating = 
True
    MsgBox Meldung
End Sub 



Gruß UD
Anzeige
AW: doppelte Datensätze löschen
09.11.2004 11:10:34
Kerstin
Hallo...
zunächst einmal vielen Dank für die schnelle Hilfe.
Einen Teil des Makros kann ich sicherlich gut verwenden, allerdings hat sich mein Problem jetzt leicht verändert...siehe neue Einstellung der veränderten Anfrage.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige