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

Wertevergleich abhängig von ID und Zeitstempel

Wertevergleich abhängig von ID und Zeitstempel
20.03.2019 16:48:26
ID
Erst einmal vielen Dank an alle Foristen, deren Beiträge mir schon mit der einen oder anderen Excel Herausforderung geholfen haben.
Ich habe eine Excel Tabelle mit IDs in Spalte A, Werten in Spalte B und C und eine Zeitangabe in Spalte D.
Nun benötige ich ein Makros das folgendes macht:
Es soll den ältesten Wert aus Spalte B mit dem neuesten Wert aus Spalte C für alle Zeilen mit der gleichen ID vergleichen und dann alle Zeilen dieser ID löschen, wenn die Werte identisch sind.
Ist so etwas möglich?
Hertzlichen Dank und beste Grüße
Dre

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

Betreff
Datum
Anwender
Anzeige
AW: Wertevergleich abhängig von ID und Zeitstempel
20.03.2019 19:19:29
ID
Hi Dre,
stelle doch bitte deine Beispieldatei hier rein, damit wir das besser verstehen wie es aussehen soll und was passieren soll und dann sehen wir weiter!
LG
Alexandra
AW: Wertevergleich abhängig von ID und Zeitstempel
21.03.2019 09:37:01
ID
Hallo Alexandra,
leider funktioniert der File-Upload nicht, obwohl die Datei weniger als 300KB große ist. Daher hier der Dropboxlink zur Datei: https://www.dropbox.com/s/s2b1simzhjmph4h/Code%20%C3%84nderungen.xlsx?dl=0
Ich hoffe, das ist okay so. In der Datei sollten beispielsweise Zeile 2 und 3 (gleiche ID in Spalte A) gelöscht werden, da der älteste Wert aus Spalte B dem neuesten Wert aus Spalte C entspricht. Die Zeilen 23-25 (gleiche ID)sollten z.B. bestehen bleiben, da der älteste Wert in Spalte B (RACK-) nicht dem neuesten Wert in Spalte C (16G-) entspricht.
Vielen Dank schonmal für Deine Mühe!
LG
Dre
Anzeige
AW: Wertevergleich abhängig von ID und Zeitstempel
21.03.2019 09:50:55
ID
Noch eine kurze Frage. Woran könnte es liegen, dass ich die Excel Datei nicht hochladen konnte?
Lieben Dank,
Dre
AW: Wertevergleich abhängig von ID und Zeitstempel
21.03.2019 10:19:52
ID
Hallo,
folgende Voraussetzungen:
-Datei nicht größer als 300kb
-keine Umlaute im Dateinamen (benenne die Datei einfach in z.B. Test um)
-Datei darf nicht zu tief in Verzeichnissen "versteckt" sein, leg sie am besten auf den Desktop
-nicht vergessen die Datenschutzbestimmungen zu bestätigen
Dann sollte es auch funktionieren.
Gruß Werner
AW: Wertevergleich abhängig von ID und Zeitstempel
21.03.2019 10:26:53
ID
Danke, Werner. Es lag am Umlaut :-)
Hier die Datei: https://www.herber.de/bbs/user/128555.xlsx
Wäre super, wenn es eine Lösung für die Problematik gibt.
Beste Grüße
Dre
Anzeige
AW: Wertevergleich abhängig von ID und Zeitstempel
21.03.2019 13:58:24
ID
Servus Dre,
teste mal:

Option Explicit
Option Base 1
Sub test()
Dim intLZ As Long
Dim i As Long
Dim y As Long
Dim objDict As Object
Dim Einzelwerte As Variant
Dim first As Boolean
Dim Treffer() As Variant
Dim datAlt As Date
Dim datNeu As Date
Dim k As Long
With ActiveSheet
intLZ = .Cells(Rows.Count, 1).End(xlUp).Row
Set objDict = CreateObject("Scripting.Dictionary")
For i = 2 To intLZ
objDict(.Cells(i, 1).Text) = 0
Next i
ReDim Einzelwerte(1 To objDict.Count)
Einzelwerte = objDict.keys
Set objDict = Nothing
For i = LBound(Einzelwerte) To UBound(Einzelwerte)
first = True
k = 1
For y = 2 To intLZ
If .Cells(y, 1) = Einzelwerte(i) Then
If first = True Then
ReDim Treffer(1 To k)
Treffer(k) = y
datAlt = .Cells(y, 4)
datNeu = .Cells(y, 4)
first = False
k = k + 1
Else
ReDim Preserve Treffer(1 To k)
Treffer(k) = y
If datAlt > .Cells(y, 4) Then datAlt = .Cells(y, 4)
If datNeu 
Grüße, Bernd
Anzeige
AW: Wertevergleich abhängig von ID und Zeitstempel
21.03.2019 15:15:24
ID
Hallo Bernd,
vielen Dank für Deine Mühe.
Leider funktioniert der Code nicht. Wenn ich das Makro laufen lasse, wird lediglich die Zeile 20 gelöscht. Diese sollte aber erhalten bleiben. Gelöscht werden sollten die Zeilen 2-19, 21-22, 83-85, 88-99, 93-94,...
Herzlichen Dank und beste Grüße
Dre
AW: Wertevergleich abhängig von ID und Zeitstempel
21.03.2019 15:43:35
ID
Servus Dre,
ist ja klar, das Makro gleicht erst die ID ab, dann prüft es nach, wann bei dieser ID zuerst der "alte Wert" vorkommt und speichert das Datum. Dann wann zuletzt das Datum bei "neuer Wert" drinsteht. Sind die Daten gleich, löscht es alle Zeilen mit dieser ID, nicht die Zeilen mit dem "alten" Wert.
Was mir aber gerade aufgefallen ist; die Kombination aus den (zu löschenden) Zeilen 2-19 kommt in Zeile 1686 und 3027 noch einmal mit anderem Datum vor. Sobald ich nur die "alten" Werte auslese laufen die beiden Zeilen auch mit in den Zwischenspeicher und daher unterscheidet sich das Datum "alter Wert" und "neuer Wert" und keine Zeile wird gelöscht.
Zeilen 21 und 22 haben unterschiedliche Datum, warum jetzt doch löschen?!
Deine Logik erschließt sich mir gerade nicht...
Grüße, Bernd
Anzeige
AW: Wertevergleich abhängig von ID und Zeitstempel
21.03.2019 16:51:37
ID
Hallo Bernd,
vielleicht habe ich mich nicht gut ausgedrückt.
Die Zeile soll nicht gelöscht werden wenn das Datum gleich ist, sondern wenn der ältestse Wert aus Spalte B gleich dem neuesten Wert aus Spalte C entspricht (bei gleicher ID in Spalte A). Bei Zeile 21-22 ist der Wert gleich (BK1-), daher sollten diese Zeilen gelöscht werden.
Wäre dies einfacher, wenn das Bearbeitungsdatum keine Rolle spielt? Eventuell könnte ich mir die Listen auch chonologisch von der IT erstellen lassen. Dann müsste man nur pro ID in Spalte A den ersten Wert aus Spalte B mit dem letzen Wert aus Spalte C vergleichen...
Herzlichen Dank,
Dre
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige