Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1560to1564
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

Datum - und Zeitbereich auswählen, löschen

Datum - und Zeitbereich auswählen, löschen
06.06.2017 09:29:18
Frank
Hallo liebe Excel Gemeinde,
ich habe folgendes Problem und ich hoffe Ihr könnt mir dabei helfen es zu lösen. Ich bin noch ein Anfänger auf dem Gebiet der VBA und taste mich langsam an die Thematik heran. Das Thema Datum und Zeit ist schon oft in Foren diskutiert worden, jedoch fand ich keine Lösung für mein Problem:
Ich habe in der Spalte A Datum – und in der Spalte B Zeitangaben bis ca. Zeile 15.000 (Screenshoot).
Userbild
Nun sollen alle Zeilen gelöscht werden die Außerhalb des eingegebenen Datums und Zeitbereichs liegen.
Für die Eingrenzung des Datumsbereichs funktioniert folgende Prozedur hervorragend.
Sub DatumEingrenzen()
Dim dateFrom As Date
Dim dateTo As Date
Dim timeFrom As Date
Dim timeTo As Date
Dim i As Long
Dim wksData As Worksheet
Dim wksEingabe As Worksheet
Set wksEingabe = ActiveWorkbook.Worksheets("Tabelle1")
Set wksData = ActiveWorkbook.Worksheets("Tabelle2")
dateFrom = wksEingabe.Range("B16")                         'Datumsgrenzen eingeben
dateTo = wksEingabe.Range("D16")
timeFrom = wsEingabe.Range"B13")                           'Zeitgrenzen eingeben
timeTo = wsEingabe.Range("D13")
For i = wksData.Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If wksData.Cells(i, 1)  dateTo Then
wksData.Rows(i).Delete shift:=x1Up
End If
Next i
Set wsEingabe = Nothing
Set wsData = Nothing
End Sub

Jetzt (wie in der Prozedur schon angedeutet) soll noch der Zeitfaktor hinzukommen. Wenn jetzt bspw. In den Zeilen des Datumsbereiches „B8“ und „D8“ 15.04.17 und 24.04.17 und in den Zellen des Zeitbereiches „B13“ und „D13“ 11:00 Uhr und 15:00 Uhr eingegeben wird, sollen alle Zellen außerhalb dieses Datums – und Zeitbereichs gelöscht werden.
Als Zusatz:
In einer neuen bzw. anderen Prozedur sollen zusätzlich die Zeilen gelöscht werden, die sich innerhalb des Datumsbereichs finden aber außerhalb des Zeitbereichs. Sprich, im Gegensatz zur ersten Problembeschreibung würde man bspw. die Datumsangabe 17.04.17 mit der Uhrzeit 15:01 Uhr nicht wiederfinden, da sie gelöscht ist.
Ich hoffe Ihr könnt mir weiterhelfen und freue mich auf eure Lösungsvorschläge.
Vielen Dank.
Mit freundlichen Grüßen
Frank

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum - und Zeitbereich auswählen, löschen
06.06.2017 09:39:34
ChrisL
Hi Frank
Die Frage ist, welcher Wert hinter den Zeiten steht, was man anhand des Bildes nicht sieht.
Wenn du die Daten/Zeiten mal als normale Zahlen formatierst, siehst du die Werte. Die Zeit ist eine Dezimalzahl z.B. 12:00 wäre 0,5 resp. 1/2 Tag.
Somit wäre Datum und Zeit zu addieren z.B.
If wksData.Cells(i, 1) + wksData.Cells(i, 2) dateTo + timeTo Then
cu
Chris
...einfach Datum + Zeit..
06.06.2017 10:56:07
EtoPHG
Frank,
also:
   If wksData.Cells(i, 1)  (dateTo + timeTo) Then
wksData.Rows(i).Delete shift:=x1Up
Gruess Hansueli
AW: ...einfach Datum + Zeit..
06.06.2017 13:00:03
Frank
Hallo Hansueli,
leider funktioniert dein Vorschlag nicht, die Zeilen mit der entsprechenden Uhrzeit werden nicht gelöscht.
Trotzdem Danke für deine Mühen.
Mit freundlichen Grüßen
Frank
Anzeige
AW: ...einfach Datum + Zeit..
06.06.2017 13:36:25
EtoPHG
Hallo Frank,
Also, ja mein Code funktioniert nicht. Ich nahm an, dass sich die Zeit ebenfalls in Spalte A befand. Das passiert halt schnelle wenn die Anfrager ein Bild, statt eine kopierbare Exceltabelle posten.
Sonst lief mein Vorschlag auf den von Chris hinaus.
Du solltest als erste Codezeile in jedem Modul Option Excplicit haben, dann würdest du bemerken, dass diverse Fehler in deinem geposteten Code sind!
Das Zusatzproblem ist wohl einfach zu lösen: Vertausche die beiden grösser/kleiner Operatoren und ändere das Or in AND!
Gruess Hansueli
AW: ...einfach Datum + Zeit..
06.06.2017 15:35:51
Frank
Hallo Hansueli,
den Rat mit der kopierbaren Exceltabelle werde ich beachten. Ich habe jetzt im Code die Operatoren und Or/And vertauscht. Es funktioniert leider nicht. Das Ergebnis zu Beschreiben würde zu lange dauern. Daher ist die Datei mit dem Funktionierenden Code von Chris hochgeladen. Leider nur auf zwei Tage begrenzt, weil sonst die max. upload Größe überschritten wäre.
Vielleicht schaffst du es den Code so abzuändern, dass die richtigen Zeilen gelöscht werden.
https://www.herber.de/bbs/user/114057.xlsm
Gruß Frank.
Anzeige
AW: ...einfach Datum + Zeit..
06.06.2017 15:54:54
ChrisL
Hi Frank
Grösser/Kleiner hast du auch geändert?
cu
Chris
AW: Datum - und Zeitbereich auswählen, löschen
06.06.2017 12:57:20
Frank
Hallo Chris,
dein Code funktioniert einwandfrei. Vielen , vielen Dank.
Anbei sei gemerkt, dass die Formatierung in den Eingabe Zellen (wksEingabe)sowie den Datenzelle (Spalte B)mit Uhrzeitangaben auf Benutzerdefiniert mit hh:mm:ss formatiert sind.
Hättest du noch einen Vorschlag zur Lösung des "Zusatzproblems"?
Ansonsten vielen Dank nochmal.
Mit freundlichen Grüßen
Frank
AW: Datum - und Zeitbereich auswählen, löschen
06.06.2017 13:21:35
ChrisL
Hi Frank
Die Formatierung habe ich schon gesehen, aber der Wert hätte ein anderer sein können.
Einfach die Bedingung umdrehen...
If wksData.Cells(i, 1) + wksData.Cells(i, 2) > dateFrom + timeFrom AND wksData.Cells(i, 1) + wksData.Cells(i, 2) cu
chris
Anzeige
AW: Datum - und Zeitbereich auswählen, löschen
06.06.2017 16:00:03
Frank
Hallo Chris,
der Code Funktioniert leider nicht. Das Ergebnis ist langwierig zu beschreiben deshalb ist im Anhang die Excel Datei mit deinem funktionierenden Code für das "erste Problem", leider nur mit Zwei Tagen, aufgrund der Dateigröße.
Das Ziel sollte sein, dass jetzt nur noch die Zeilen am 28.03.17 und 29.03.17 jeweils von 19Uhr bis 22Uhr stehen bleiben. Vielen Dank.
https://www.herber.de/bbs/user/114060.xlsm
Gruß Frank
AW: Datum - und Zeitbereich auswählen, löschen
06.06.2017 16:12:16
ChrisL
Hi Frank
Wie Hansueli schrieb: Option Explicit!
xlUp
x1Up
wks
ws
(finde den Unterschied)
cu
Chris
Anzeige
AW: Datum - und Zeitbereich auswählen, löschen
07.06.2017 17:32:46
Frank
Hallo Chris,
Das Option Explicit habe ich eben eingefügt und die dadurch entstandenen "Fehler" korrigiert. Die Operatoren vertauscht und anstatt "Or" , "And" geschrieben.
Das Ergebnis ist das gleiche:
Nur in den Zeilen mit den beiden eingegebenen Daten (von - bis) findet eine Veränderung statt. Die Zeilen, die das Startdatum besitzen werden ab der Zeile gelöscht, die die eingegebenen Zeiten (von) enthält.
Alle Zeilen zwischen eingegebenen Anfangs - und Enddatum fehlen.
Bei den Zeilen mit dem Enddatum werden alle Zeilen vor dem eingegebenen Zeit (bis) gelöscht.
Ich habe jetzt noch ein wenig selbst mit den Operatoren und den logischen Verknüpfungen rumprobiert, komme aber auf keinen grünen Ast.
Falls ihr weiter keine Vorschläge habt. Dann war's das.
War eh bloß ein "Zusatzproblems". Wichtig war mir die Lösung des Ersten Problems.
Danke nochmal.
Gruß Frank
Anzeige
AW: Datum - und Zeitbereich auswählen, löschen
08.06.2017 08:40:12
ChrisL
Hi Frank
Keine Ahnung was du bastelst, aber bei mir funktioniert es.
Da du keine Testdaten älter wie 28.3.17 12:00 hast, bleibt natürlich auch nichts stehen und die verbleibenden Daten beginnen mit 29.3.17 16:00.
cu
Chris
Beispiel Mappe Bitte!...owT
06.06.2017 09:39:49
Max2

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige