| |
Visual-Basic EinsteigerRechnen mit Datum und Uhrzeit | | | Autor: V A T | Datum: 23.07.17 22:34 |
| Hallo,
mir raucht der Kopf! Irgendwie stehe ich mit dieser kombinierten Datums-/Uhrzeitberechnerei in VBA auf Kriegsfuss! Vielleicht kann mich jemand von Euch auf den rechten Weg bringen...
Die Ausgangslage:
- Ich habe eine Excel-Tabelle mit VBA-Code geschrieben.
- Im Code habe ich eine Textbox, in der ein Startdatum mit Uhrzeit steht (z.B. "24.12.2002 15:34").
- In der Excel-Tabelle habe ich eine Zelle, in der ein Wert steht (z.B. "2").
- jetzt möchte ich zwei Dinge tun, wobei ich schon am ersten scheitere:
1. Über eine Funktion, in der ich die beiden Werte mitgebe, die Summe errechnen (ich kenne Dateadd(), aber irgendwie bekomme ich die Werte da nicht im richtigen Format rein.
2. Die Funktion so anpassen, dass Zeiten, welche an Wochentagen zwischen 18:00 abends und 8:00 morgens und die beiden Wochenendtage nicht mitaddiert werden. Beispiel ("21.07.2017 17:00" + "2h" = "24.07.2017 9:00", weil am Freitag nur noch die verbleibende Stunde bis 18:00 Uhr zählt, das Wochenende gar nicht zählt und am Montag erst ab 8:00 Uhr gezählt wird)
Gibt es irgendjemandem, der mir hier helfen/einen Tipp geben kann?! Vorab vielen Dank an alle, die mich hier unterstützen. Ich weiß das ernsthaft zu schätzen!!!
Gruß
V A T
Aufruf im Code:
textfeld2.text=SLA_Servicezeit(range"A1".value, textfeld1.text) Funktion im Modul:
Function SLA_Servicezeit(Wert As Long, Startdatum As Date) As Date
A_Ende = Beginn + SLA
SLA_Servicezeit = A_Ende
End Function Vielen Dank an alle in diesem Forum, welche mir Ihre Zeit schenken und sich mit meinen Problemen befassen! Ich weiß das ernsthaft zu schätzen und danke allen, die sich mit dieser Frage befassen herzlich!!! | |
Re: Rechnen mit Datum und Uhrzeit | | | Autor: Franki | Datum: 24.07.17 04:18 |
| Hallo,
deine Angaben sind etwas dürftig, bzw. du schreibst nicht welche Fehlermeldungen evtl. erscheinen.
Zitat: | |
- Ich habe eine Excel-Tabelle mit VBA-Code geschrieben.
- Im Code habe ich eine Textbox, in der ein Startdatum mit
Uhrzeit steht (z.B. "24.12.2002 15:34").
| |
Um mit Datum/Uhrzeit rechnen zu können musst/solltest du immer die Daten aus einer Textbox, einem String usw. zuerst mal umwandeln in ein gültigles Datumsformat. Ein String aus einer Textbox ist niemals ein vernünftiges Datum.
Zitat: | |
- In der Excel-Tabelle habe ich eine Zelle, in der ein Wert
steht (z.B. "2").
- jetzt möchte ich zwei Dinge tun, wobei ich schon am ersten
scheitere:
1. Über eine Funktion, in der ich die beiden Werte
mitgebe, die Summe errechnen (ich kenne Dateadd(), aber
irgendwie bekomme ich die Werte da nicht im richtigen Format
rein.
| |
Wo liegt denn dein Problem? Schau dir mal diesen Beispielcode an.
Private Sub Form_Load()
Dim strDatum As String
Dim vbDatum As Date
Dim Intervall As Integer
Dim Ergebnis As Date
strDatum = "24.12.2002 15:34"
vbDatum = CDate(strDatum)
Intervall = 2
Ergebnis = DateAdd("d", Intervall, vbDatum)
MsgBox Ergebnis
Irgendwas = Addition(vbDatum, Intervall)
End Sub
Private Function Addition(Startdatum, Intervall)
ErgebnisFunktion = DateAdd("d", Intervall, Startdatum)
MsgBox "Ergebnis Funktion." & ErgebnisFunktion
End Function Zitat: | |
2. Die Funktion so anpassen, dass Zeiten, welche an
Wochentagen zwischen 18:00 abends und 8:00 morgens und die
beiden Wochenendtage nicht mitaddiert werden.
| |
Und was ist mit Feiertagen? Was ist mit Umstellung von Sommerzeit/Normalzeit usw.?
Du muss erst mal den richtigen Weg kennen wie man mit Datum/Uhrzeit überhaupt rechnen kann, du sagst zwar, dass du DateAdd kennst, aber schau dir mal mein Beispiel oben an. Wenn das bei dir funktioniert, dann kannst du daran gehen die einzelnen Bestandteile weider zu zerlegen (Stichwort DatePart, und dann musst du auch noch Bedingungen einbauen für die Wochentage und die Uhrzeiten usw.
Solche Sachen sind deiner Phantasie überlassen, möglich ist da alles, sofern du die Grundrechenarten mit Datum/Uhrzeit beherrschst, denn deine Anforderungen werden von Hause aus nicht geboten von VB(A) | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|