Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Datum zwischen zwei Daten
#1
Hi Leute,

ich habe eine Userform, in der ein Anfangsdatum und ein Enddatum eingetragen werden. Zudem habe ich eine Excel-Tabelle, in der bereits Anfangs- (M16:M35) und Enddaten (O16:O35) stehen. Nun möchte ich gerne mittels VBA prüfen, ob das Anfangs- bzw danach das Enddatum zwischen den bereits eingetragenen Daten liegt.

Mit meiner If-Anweisung komme ich nicht weiter und die wird sicher sehr groß (weil er nacheinander die bereits eingetragenen Daten abprüfen muss). Mein Ansatz bisher:


Code:
If TextBox_Beginn.Value >= ThisWorkbook.Sheets("Test").Range("M16").Value And TextBox_Beginn.Value <= ThisWorkbook.Sheets("Test").Range("O16").Value Then
   MsgBox "Liegt dazwischen", vbInformation, "Information"
End If


Habt ihr eine Idee? :)
Antworten Top
#2
Hai, 

Prüfe deinen Code in der if Abfrage bei der 2ten Prüfung. Hier sagst du Datum Beginn ist kleiner gleich x obwohl du im ersten Teil sagst das Datum begin größer gleich x ist. Dann empfehle ich dir ein schleifenkonstrukt zu bauen

Edit:
Ich glaube ich habe was falsch verstanden. Du willst das entweder das anfangs Oder das enddatum zwischen den beiden Daten liegt? 

Grus
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Usenet-Forum zu posten und auf die Korrekturen zu warten.
[i]Matthew Austern – Software-Entwickler bei Google[/i]
Antworten Top
#3
Hi Oli,

nein das stimmt so nicht, ich sage, dass der Beginn größer als x und kleiner als y sein soll - also genau dazwischen. Aber das Programm setzt es leider nicht um.
Antworten Top
#4
Hey, 

Kannst du deine Mappe hochladen?

Gruß
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Usenet-Forum zu posten und auf die Korrekturen zu warten.
[i]Matthew Austern – Software-Entwickler bei Google[/i]
Antworten Top
#5
Hey,

das würde dann eine Weile dauern, da ich die Mappe nicht hochladen, sondern eine neue nachbauen müsste.

Habe noch folgenden Code ausprobiert - leider ohne Erfolg:


Code:
Dim Z1 As Long
   For Z1 = ThisWorkbook.Sheets("Test").Cells(16, 13).Row To 35
If Cells(Z1, 13) <= TextBox.Value And Cells(Z1, 15) >= TextBox.Value Then
    MsgBox "Test.", vbInformation, "Information"
End If
Next Z1
Antworten Top
#6
Habe eine Lösung gefunden :)


Code:
Dim i As Integer
   For i = 16 To 35
   If Cells(i, 13) <= TextBox_Urlaubsbeginn.Text And Cells(i, 15) >= TextBox_Urlaubsbeginn.Text Then
   MsgBox "Der Eintrag überschneidet sich mit Urlaubszeitraum " & i - 15, vbInformation, "Information"
   End If
Next i
Antworten Top
#7
Erledigt!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste