Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1628to1632
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
Doppelte mit Bedingung löschen
11.06.2018 05:04:18
Ludmila
Hallo,
ich möchte das doppelte Datensätze gelöscht werden.
Bedingung wenn der Name bereits vorhanden (Alt) soll dieser gelöscht werden.
Leider funktioniert das nicht.
Danke!
Gruß
Ludmila
https://www.herber.de/bbs/user/122037.xlsm

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte mit Bedingung löschen
11.06.2018 05:43:44
Hajo_Zi
Hallo Ludmila,
ganz ohne VBA.
Daten, Datentools, Duplikate entfernen.

Gruß Hajo
Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Doppelte mit Bedingung löschen
11.06.2018 09:47:12
Ludmila
Hallo Hajo,
erstmal Dank für Deine Antwort.
Es hilft mir jedoch nicht weiter, da die Bedingung "Alt" und "Neu" nicht erfüllt werden.
Über die UF lasse ich die Daten eintragen, danach soll der Alte Datensatz gelöscht werden.
Das heißt, die Personen werden erst eingetragen und dann soll der doppelte Name gesucht und gelöscht werden.
Danke!
Ludmila
https://www.herber.de/bbs/user/122041.xlsm
Anzeige
AW: Doppelte mit Bedingung löschen
11.06.2018 10:51:24
Bernd
Hi,
warum nicht so:
Sub Zeilen_loeschen()
Dim rng As Range
Set rng = ActiveSheet.Range("G2:G20").Find(what:="Alt", lookat:=xlWhole)
If rng Is Nothing Then
Exit Sub
Else
rng.EntireRow.Delete
End If
Do
Set rng = ActiveSheet.Cells.FindNext
If rng Is Nothing Then
Exit Sub
Else
rng.EntireRow.Delete
End If
Loop
End Sub
MfG Bernd
AW: Doppelte mit Bedingung löschen
11.06.2018 11:15:37
Ludmila
Hallo Bernd,
Danke für Deine Antwort, aber es ist nicht das was ich möchte.
Wenn z.B. eine neue Person hinzukommt, dann ist diese erstmal "Neu".
Nach dem doppelten löschen werden alle als "Alt" bezeichnet.
Es sind nicht immer die gleichen Namen und es kommen immer wieder neue Namen hinzu.
Sinn des ganzen ist, dass wenn sich z.B. die Mail oder Tel. einer Person ändert, dass dann die Alte gelöscht wird.
Danke!
Gruß
Ludmila
Anzeige
AW: Doppelte mit Bedingung löschen
11.06.2018 11:24:27
Bernd
Hi,
nun ja, ich Verstehe den Sinn der Sache nicht, denn wenn sich bei einer bereits erfassten Person die Telefonnummer ändert, dann würde ich einfach diese Nummer ändern und nicht den ganzen Datensatz neu eingeben.
Aber gut, sei wie es sei, lasse daher auf offen.
MfG Bernd
AW: Doppelte mit Bedingung löschen
11.06.2018 11:26:41
Daniel
Hi
1. sortiere nach den Spalten "Name", "Titel" und "Zustand" absteigend!
wichtig ist, dass bei mehreren Zeilen für den gleichen Namen derjenige oben steht, der nicht gelöscht werden soll (da "neu" nach "alt" kommt, musst du absteigend sortieren).
2. Wende auf die Tabelle dann die Funktion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN an, mit den Spalten "Name" und "Titel" als Kriterium.
allerdings stellt sich die Frage, warum du beim Eingeben der neuen Nummer nicht gleich den entsprechenden Eintrag suchst und die Zeile überschreibst.
Gruß Daniel
Anzeige
AW: Doppelte mit Bedingung löschen
11.06.2018 11:53:58
Ludmila
Hallo Zusammen,
habe es jetzt so gelöst, vielleicht nicht der Beste Weg aber es funktioniert.
Private Sub CommandButton1_Click()
Dim lxl&, lol&
With ThisWorkbook.Worksheets("BL")
lol = .Cells(Rows.Count, 3).End(xlUp).Row
.Cells(2, 1).Resize(lol - 1, 7).Sort _
Key1:=.Range("C2"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
.Cells(2, 1).Resize(lol - 1, 7).Sort _
Key1:=.Range("F2"), Order1:=xlDescending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
lol = .Cells(Rows.Count, 3).End(xlUp).Row
For lxl = lol To 1 Step -1
If WorksheetFunction.CountIf(.Columns(3), .Cells(lxl, 3)) > 1 Then
If .Cells(lxl, 7) = "Alt" Then
Rows(lxl).Delete
End If
End If
Next lxl
lol = .Cells(Rows.Count, 3).End(xlUp).Row
.Cells(2, 1).Resize(lol - 1, 7).Sort _
Key1:=.Range("C2"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
For lol = 2 To .Cells(Rows.Count, 3).End(xlUp).Row
.Cells(lol, 1) = lol
.Cells(lol, 7) = "Alt"
Next
End With
End Sub

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige