Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Excel 2013 VBA für Profis

Datumswerte umrechnen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Berechnungen mit Datumswerten sind ziemlich kompliziert. Daher stellt VBA eigene Funktionen bereit, welche beispielsweise die Differenz zwischen zwei Datumswerten ermitteln können.

Transkript

Da der Umgang mit Datumswerten doch ein bisschen anders ist als mit einfachen Zahlen, gibt es spezielle Funktionen, die Ihnen dabei helfen. In manchen Fällen ist es noch einfach. Zum Beispiel wenn Sie die Differenz brauchen. Sub DatumsDifferenz, die Differenz aus zwei Datumswerten. Ich habe da oben schon eine Liste von verschiedenen Datumswerten gemacht. Ostern 2013, Weihnachten 2013 und hier ein Text. Wenn Sie jetzt wissen wollen, wie weit Ostern und Weihnachten voneinander entfernt sind, dann kann Ihnen das mit Debug.Print das Direktfenster unten direkt anzeigen. Nämlich m-cdatWeihnachten - m_cdatOstern. Und mit F5 sehen Sie, die sind 268 Tage voneinander entfernt. Wollen Sie das, ich schreibe das mal dazu, in Wochen haben, nicht in Tagen, dann können wir das erstmal einfach kopieren. Darf natürlich kein gleichnamiger Prozedurname sein. InWochen. Dann könnte man im ersten Anlauf einfach mal probieren, dann teile ich das mal durch 7. Jede 7 Tage bilden eine Woche. Und mit F5 sehen Sie, sind 38,285 Wochen. So genau wollen Sie es gar nicht wissen. Also brauchen Sie eine Alternative dazu. Ich lasse das mal im Vergleich da stehen. Besser ist es, mit der Funktion DateDiff zu arbeiten. Debug.Print. Und DateDiff möchte zuerst wissen, in welchem Intervall Sie arbeiten wollen. Sie wollen Wochen sehen, also in Gänsefüßchen, es ist ein String, Interval As String. Und dann den ersten beziehungsweise den zweiten Wert m_cdatOstern, m_cdatWeihnachten Und wenn Sie das jetzt starten, werden Sie die beiden Werte im Vergleich sehen, mit F5. Einmal "38,irgendwas", viel zu genau. Das kann man natürlich mit Fix und CInt bearbeiten. Oder speziell, in der Version DateDiff, der rechnet Ihnen das in ganzen Objekten aus, und zwar, das können Sie in der Hilfe dann nachgucken, in Wochen, in Monaten, in Jahren, oder was Sie gerade brauchen. Die Differenz lässt sich also mit DateDiff ausrechnen. Aber Sie können natürlich auch was hinzuaddieren. Also Sub DatumHinzu. Auch hier wieder im einfachsten Fall, wenn Sie es in Tagen wissen, ganz banal, sagen wir zum Beispiel Weihnachten, und dann 14 Tage weiter ist schlicht das Datum von Weihnachten + 14. Also mit F5, das ist der 7. Januar, 14 Tage später eben. Und wenn Sie es genau prüfen wollen, werden Sie feststellen, dass das Ergebnis sogar ein korrekter Datentyp ist. Mit TypeName lässt sich das herauskriegen. Und, natürlich nicht mit Return, sondern mit F5, steht dann unten im Direktbereich, dass es sich um ein Date handelt, obwohl Sie zwischendurch eine im Grunde Integer-Zahl draufgezählt haben. Also das funktioniert, solange Sie nur Tage draufaddieren wollen. Also DatumHinzuInTagen. Schwieriger wird es hier auch wieder, wenn Sie in anderen Einheiten rechnen, wie Wochen oder, sagen wir hier mal, InMonaten. Ein Wort natürlich. Da können Sie jetzt nicht einfach sagen, na ja, da machen wir 31 drauf. Wenn Sie drei Monate haben, sind zwei davon 31 Tage lang und einer hat 28. Das ist aussichtslos. Und dann zu sagen, ich rechne mal mit 30 Tagen, wird schon irgendwie stimmen. Da gibt es extra eine Funktion, die Ihnen das Problem abnimmt: DateAdd. DateAdd möchte wie DateDiff erstmal wissen, in welcher Dimension Sie rechnen, also hier in Monaten, kleines M. Komma, danach wie viele Sie denn draufaddieren wollen. Und nach dem Komma steht das Startdatum und damit sind wir schon, Klammer zu, fertig. Also ohne dass ich mir jetzt Gedanken machen muss, wie viele Tage der jeweilige Monat oder die Monate zum Addieren haben, kann ich jetzt mit F5 direkt sagen, aus dem 24.12.2013 wird korrekt der 24.01.2014, einen Monat später eben. Und schließlich gibt es noch das Problem, dass wir da oben ein Datum haben, welches gar kein Datum ist. Entweder Sie kriegen es zum Beispiel als Eingabe aus einem Textfeld oder Sie importieren es aus zum Beispiel einer Internetseite oder einer Textdatei. Das da oben ist ein Text. Deswegen heißt die Konstante auch schon ganz deutlich "String". Das kann ich aber trotzdem umwandeln. Wenn ich damit zum Beispiel weiterrechnen will, muss ich das machen. Also Sub DatumUmwandeln. Und mit Debug.Print werde ich das jetzt in ein echtes Datum verwandeln. Dazu gibt es extra die Funktion DateValue. DateValue kriegt einen String, eine Zeichenkette. Die haben wir da oben. Und verwandelt die in den korrekten Datentyp um und prüft dabei auch natürlich, ob das umwandelbar ist. Wenn ich jetzt entsprechend F5 drücke, dann sehen Sie hier auch schon an der anderen Formatierung, es ist ein Datum. Und ich könnte mit TypeName jetzt prüfen, dass es auch den Date-Datentyp hat. Und mit diesem Ergebnis könnte ich jetzt wieder weiterrechnen. Nur so mal zum Gucken. Mit F5, 14 Tage später ist eben der 19.. Das ginge mit der Zeichenkette selber nicht. Allerdings erwartet das natürlich, dass Sie ein landessprachliches Datum haben. Also in einem deutschen Windows, wenn Sie Deutsch als Sprache eingestellt haben, müsste dort "Januar" stehen. In einem österreichischen muss dort "Jänner" stehen, sonst versteht die DateValue-Funktion nicht, welcher Monat gemeint ist. Aber immerhin. Sie können hoffen, dass die Benutzer das einigermaßen landessprachlich machen. Ohne wirklich viel Mühe können Sie daraus wieder eine umwandelbare, speicherbare Date-Zahl machen, mit der Sie dann auch rechnen können. Also die drei Funktionen, das sind die im Wesentlichen: Ein DateDiff, ein DateAdd, und ein DateValue ermöglichen Ihnen sehr angenehm den Umgang mit Datumswerten, damit man die auch verrechnen kann.

Excel 2013 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2013, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

4 Std. 59 min (53 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!