Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Zeiträume vergleichen

Forumthread: Zeiträume vergleichen

Zeiträume vergleichen
11.07.2025 20:11:03
R0b
Hallo zusammen,
ich bin noch relativ neu in der VBA Welt und bitte daher um Nachsicht..Ich habe folgendes Problem.
Über eine Inputbox lasse ich verschiedene Zeiträume abfragen bzw. jeweils das Start- und Enddatum. Diese werden jeweils in Variablen geschrieben.
Ist es möglich, zu vergleichen, ob ein Zeitraum in einem der anderen Zeiträume vorhanden ist?
Beispiel:
Zeitraum A: 01.01.2020 bis 01.02.2021
Zeitraum B: 01.05.2020 bis 01.10.2020

Kann ich hier prüfen und ausgeben lassen, dass B in A enthalten ist?
Vielen Dank
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeiträume vergleichen
11.07.2025 20:40:12
daniel
hi
im prinzip ja, aber so wie es da steht, nein
Texte wie "01.01.2020 bis 01.02.2021" kann man so nicht direkt miteinander vergleichen sondern müsste sie erstmal zerlegen
die einzelnen Datumswerte müssen in eigenen Variablen vom Typ Date oder Long stehen.
dann kannst du für die Prüfung größer- oder kleiner-Vergleiche machen, um zu prüfen ob eine Übereinstimmung besteht.
dann hängt es davon ab, was du genau prüfen willst dh ob A vollständig in B enthalten sein soll oder ob eine Teilweise Überschneidung ausreicht.
du müsstet da schon konkreter werden.

hier noch eine Idee, wie du dir Vergleichsorgien sparen kannst:
Ein Datum ist letztendlich eine Zahl. Wenn du dir über diese Zahlen als Zeilennummer die Zeiträume als Zellbereich definierst, dann könntest du über INTERSECT überprüfen, ob eine Überschneidung besteht:

Sub test()

Dim A_Start, A_Ende
Dim B_Start, B_Ende
Dim rngA As Range
Dim rngB As Range
Dim Erg As Range

A_Start = CDate("01.01.2020")
A_Ende = CDate("01.02.2021")
B_Start = CDate("01.05.2020")
B_Ende = CDate("01.10.2020")

Set rngA = Range(Cells(A_Start, 1), Cells(A_Ende, 1))
Set rngB = Range(Cells(B_Start, 1), Cells(B_Ende, 1))

If Intersect(rngA, rngB) Is Nothing Then
MsgBox "keine Überschneidung"
Else
Set Erg = Intersect(rngA, rngB)
If Erg.Count = rngA.Count Then
MsgBox "A in B vollständig enthalten"
ElseIf Erg.Count = rngB.Count Then
MsgBox "B in A vollständig enthalten"
Else
MsgBox "Teilweise überschneidung"
End If
End If
End Sub

Gruß Daniel


Anzeige
AW: Zeiträume vergleichen (Formel, ohne VBA)
12.07.2025 12:10:58
R0b
Vielen Dank.
Das werde ich mal ausprobieren!
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18