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

Löschen auch mit Zeit

Löschen auch mit Zeit
15.12.2016 19:12:25
chris58
Hallo !
Ich ersuche um Hilfe bezüglich des u.a. Codes. Der Code soll doppelte Datums löschen und bei den verbleibenden nur jene stehen lassen, die zwischen 7:00 bis 12:00 aufscheinen. Den u.a. Code habe ich zwar gefunden, der löscht zwar alle doppeltenm jedoch ohne auf die Zeit zu achten.
Kann mir ein Profi sagen, was ich einfügen muß um dies zu erlangen.
Danke im voraus
chris
Sub DuplikateLoeschen()
Dim i&
Application.ScreenUpdating = False
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
If Application.CountIf(Range(Cells(14, "A"), Cells(i, "A")), Cells(i, "A")) > 1 Then
Cells(i, "A").EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End Sub

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Löschen auch mit Zeit
15.12.2016 19:17:24
Hajo_Zi
Hallo Chris,

If Hour(Cells(i, "A")) >= 7 And Hour(Cells(i, "A"))  1 Then


AW: Löschen auch mit Zeit
15.12.2016 19:36:01
chris58
Hallo Hajo !
Ich habe nun deinen code in meinen eingebaut. Vorne - Hinten - zwischendrinnen...........
Es kommen immer wieder Fehlermeldungen. Wo gehört deine Zeile genau hin.
Bin noch immer kein Profi.....
chris
AW: Löschen auch mit Zeit
15.12.2016 19:43:11
Hajo_Zi
Hallo Chris,

in Deinem Code steht
Application.CountIf(Range( _
Cells(14, "A"), Cells(i, "A")), Cells(i, "A")) > 1
oder habe ich das falsch gesehen?
Da gehört es hin.

Gruß Hajo
Anzeige
AW: Löschen auch mit Zeit
15.12.2016 19:46:39
chris58
Ja, das habe ich.
Da kommt der Laufzeitfehler 13 - Typen unverträglich
Sub DuplikateLoeschen()
Dim i&
Application.ScreenUpdating = False
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
If Hour(Cells(i, "A")) >= 7 And Hour(Cells(i, "A"))  1 Then
End If
Next
Application.ScreenUpdating = True
End Sub

AW: Löschen auch mit Zeit
15.12.2016 19:48:58
Hajo_Zi
in meiner Datei nicht. Deine sehe ich nicht.
Gruß Hajo
AW: Löschen auch mit Zeit
15.12.2016 19:58:37
chris58
Hallo Hajo !
Ich kann die Datei nicht raufladen, seit gestern geht das nicht. Keine .xls und keine .zip Datei.
Keine Ahnung warum, sonst hätte ich das ja gemacht.
Was soll ich machen, das du mir helfen "willst", ohne eine schnippische Antwort.
Gruß chris
So habe ich den Code nun drinnen:
Sub DuplikateLoeschen()
Dim i&
Application.ScreenUpdating = False
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
If Hour(Cells(i, "A")) >= 7 And Hour(Cells(i, "A"))  1 Then
Cells(i, "A").EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Löschen auch mit Zeit
15.12.2016 20:13:46
Hajo_Zi
es gibt auch Tools zum Darstellen.

Tabelle4
 A
1619.12.2016 20:06
1715.12.2016 08:06
1816.12.2016 20:06
1917.12.2016 20:06
2018.12.2016 20:06
2119.12.2016 20:06
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 24.03 einschl. 64 Bit


Aber das hast Du bestimmt noch nicht gesehen.
Option Explicit
Sub Makro8()
Dim i As Long
i = 23
If Hour(Cells(i, "A")) >= 7 And Hour(Cells(i, "A"))  1 Then
Rows(i).Delete
End If
End Sub
Ich bin dann raus, da Du keine weiteren Antworten haben willst.
Gruß Hajo
Anzeige
AW: Löschen auch mit Zeit
15.12.2016 20:26:16
chris58
Nochmals Hallo !
Wenn ich diesen Code einbaue, dann rührt sich rein gar nichts.
lg chris
Option Explicit
Sub Makro8()
Dim i As Long
i = 23
If Hour(Cells(i, "A")) >= 7 And Hour(Cells(i, "A"))  1 Then
Rows(i).Delete
End If
End Sub

AW: Löschen auch mit Zeit
15.12.2016 21:39:52
Werner
Hallo Chris,
ein paar Anmerkungen:
1. in Spalte A steht Text, macht aber nichts
(das siehst du, wenn du die Spalte A vergrößerst, dann sind die "Zahlen" linksbündig ausgerichtet)
2. deine Uhrzeiten stehen in Spalte B und nicht in Spalte A, im Code prüfst du aber Spalte A
3. die Typenunverträglichkeit bekommst du, weil du die Schleife von unten nach oben bis zur Zeile 1 laufen lässt. Deine zu prüfenden Daten gehen aber erst ab Zeile 14 los. In Zeile 13 steht aber Text (Überschriften) und da läuft der Code dann auf den Fehler mit den Typenunvertäglichkeit
4. Prüfung der Uhrzeiten mit And, Application.CountIf dann aber mit Or
Teste mal mit diesem geänderten Code:
Option Explicit
Sub DuplikateLoeschen()
Dim i&
Application.ScreenUpdating = False
For i = Cells(Rows.Count, "A").End(xlUp).Row To 14 Step -1
If Hour(Cells(i, "B")) >= 7 And Hour(Cells(i, "B"))  1 Then
Rows(i).Delete
End If
Next
Application.ScreenUpdating = True
End Sub
Gruß Werner
Anzeige
AW: Löschen auch mit Zeit
15.12.2016 21:58:24
chris58
Hallo Werner !
Da bringt der code alle, die außerhalb dieser Zeit sind. Also alle von 12 bis 24 Uhr.
Wenn ich die Vorzeichen ändere passiert, das alles gelöscht wird.
chris
AW: Löschen auch mit Zeit
15.12.2016 23:41:15
Werner
Hallo Chris,
elegant ist anders, aber es scheint zu funktionieren:
Option Explicit
Sub DuplikateLoeschen()
Dim i&
Application.ScreenUpdating = False
For i = Cells(Rows.Count, "A").End(xlUp).Row To 14 Step -1
If Cells(i, "B") >= 0.291666666666667 And Cells(i, "B")  1 Then
Rows(i).Delete
End If
Next
Application.ScreenUpdating = True
End Sub
Gruß Werner
Anzeige
AW: Löschen auch mit Zeit
16.12.2016 00:04:18
Werner
Hallo Chris,
hier noch eine Version, bei der du die Uhrzeiten in die Tabelle eingeben kannst. Sonst müsstest du bei aneren Zeiten als 07:00 h und 12:00 h jedesmal den Code anpassen. So bezieht sich der Code auf die entsprechenden Eingaben in den Zellen G2 und G3 deiner Tabelle. Vielleicht kannst du es ja brauchen.
https://www.herber.de/bbs/user/110063.xls
Gruß Werner
AW: Löschen auch mit Zeit
15.12.2016 21:55:38
Werner
Hallo Chris,
gerade ist mir noch was aufgefallen. In deiner hochgeladenen Testdatei hast du einen Datensatz:
Datum: 15.12.2016, Uhrzeit: 12:12:34
Dieses Datum ist nicht doppelt vorhanden, wird aber über die Uhrzeit trotzdem gelöscht. Soll das tatsächlich so sein? Nach meinem Verständnis ist nämlch 12:12:24 größer als 12 Uhr und sollte eigentlich nicht gelöscht werden.
Wenn dem so ist dann dieser Code:
Option Explicit
Sub DuplikateLoeschen()
Dim i&
Application.ScreenUpdating = False
For i = Cells(Rows.Count, "A").End(xlUp).Row To 14 Step -1
If Hour(Cells(i, "B")) >= "7:00:00" And Hour(Cells(i, "B"))  1 Then
Rows(i).Delete
End If
Next
Application.ScreenUpdating = True
End Sub
Gruß Werner
Anzeige
AW: Löschen auch mit Zeit
15.12.2016 19:22:21
ChrisL
Hi Chris
Oder so... ;)
If Hour(Cells(i, "A"))  12 Or _
Application.CountIf(Range(Cells(14, "A"), Cells(i, "A")), Cells(i, "A")) > 1 Then
cu
Chris
AW: Löschen auch mit Zeit
16.12.2016 08:09:32
chris58
Hallo Werner !
Hallo Chris !
Danke an Alle.
Das funktioniert nun bestens. Ich habe die Datei von Werner genommen, das kommt am besten hin und zwar diese, die ALLE ausschliesst, die nicht von 7:00 - 12: 00 aufscheinen. Normalerweise benötige ich nur die Werte vom Vormittag, das genügt vollauf.
Danke nochmals
chris
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
16.12.2016 08:53:45
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige