
133519
13.06.2017
VBA: Excel Datum als Outlook Termin mit Knopfdruck (Datum wird falsch eingetragen)
Hallo Leute, ich habe eine Frage zu dem Themengebiet VBA Code. Ich habe mir ein Code ergoogelt der ein Excel Datum als Outlook Termin einträgt, diesen Code musste ich anpassen und nun Funktioniert er nicht mehr richtig:
PROBLEM: Egal welches Datum in der Excel Datei steht, er schreibt immer den 30. Dezember 1899 in Outlook. schalte ich die Zeile .Start = Format(Cells(4).Value, "dd.mm.yyyy") & " 09:00" mit einem ' aus, schreibt er das heutige Datum 12:00 Uhr.
Hat jemand eine Idee woran das liegen könnte. Ich selbst kenne mich mit VBA nicht aus, das ist mein erster Code den ich zu gesicht bekommen habe. Ich wäre sehr dankbar um Unterstützung von euch.
Der Code sieht folgendermaßen aus:
Sub terminINoutlook()
'
' Beispiel-Funktion - Markieren - und autoamtisch eintragen in Outlook
' 2016, www.stallwanger.net
'Declaration der Variablen
Dim StartDatum As Date
Dim Pruefer As String
'Dim Nachricht As String
'Dim Ort As String
Dim Beschreibung As String
'Dim Dauer As Long
'with: eine Reihe von Anweisungen für ein bestimmtes Objekt
With Excel.Selection
StartDatum = .Cells(4).Value 'Cells(1) weist die erste Spalte (mxn)
Pruefer = .Cells(5).Value
Beschreibung = .Cells(6).Value
'Dauer = .Cells(7).Value
'Nachricht = .Cells(4).Value
'Ort = .Cells(5).Value
End With
'Nach Outlook
lvOutlook StartDatum, Beschreibung, Pruefer
'
End Sub
Public Function lvOutlook(outDate As Date, outSubject As String, outBody As String) As Boolean 'boolean typ kann wahr oder falsch speichern
'Hier beginnen die Termine
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem)
With apptOutApp
'Datum und Uhrzeit - als Start-Uhrzeit 8:00 -
.Start = Format(Cells(4).Value, "dd.mm.yyyy") & " 09:00" ' Es kann auch eine andere Uhrzeit festgelegt werden.
'.Start = Format(outDate, "dd.mm.yyy") & " 09:00" ' Es kann auch eine andere Uhrzeit festgelegt werden.
'.Date = outDate
'Termininfo
.Subject = outSubject
'oder der Betreff steht in der Spalte rechts von den Terminen
' .Location = outlocation ' 'Ort
.Body = outBody '
'.Duration = outDauer ' 1 Std. = "60" Dauer in Minuten
'Erinnerung setzen in Outlook (hier inaktiv)
'
.ReminderPlaySound = True
'Erinnerung wiederholen
.ReminderSet = True
'Termin speichern
.Save
End With
Set apptOutApp = Nothing
Set OutApp = Nothing
'Debug.Print
lvOutlook = True
MsgBox "Termin an Outlook übertragen."
Exit Function
ErrOutLook:
Set apptOutApp = Nothing
Set OutApp = Nothing
lvOutlook = False
MsgBox "Termin konnte in Outlook nicht eingetragen werden. Fehler:" & Err.Description
End Function
PROBLEM: Egal welches Datum in der Excel Datei steht, er schreibt immer den 30. Dezember 1899 in Outlook. schalte ich die Zeile .Start = Format(Cells(4).Value, "dd.mm.yyyy") & " 09:00" mit einem ' aus, schreibt er das heutige Datum 12:00 Uhr.
Hat jemand eine Idee woran das liegen könnte. Ich selbst kenne mich mit VBA nicht aus, das ist mein erster Code den ich zu gesicht bekommen habe. Ich wäre sehr dankbar um Unterstützung von euch.
Der Code sieht folgendermaßen aus:
Sub terminINoutlook()
'
' Beispiel-Funktion - Markieren - und autoamtisch eintragen in Outlook
' 2016, www.stallwanger.net
'Declaration der Variablen
Dim StartDatum As Date
Dim Pruefer As String
'Dim Nachricht As String
'Dim Ort As String
Dim Beschreibung As String
'Dim Dauer As Long
'with: eine Reihe von Anweisungen für ein bestimmtes Objekt
With Excel.Selection
StartDatum = .Cells(4).Value 'Cells(1) weist die erste Spalte (mxn)
Pruefer = .Cells(5).Value
Beschreibung = .Cells(6).Value
'Dauer = .Cells(7).Value
'Nachricht = .Cells(4).Value
'Ort = .Cells(5).Value
End With
'Nach Outlook
lvOutlook StartDatum, Beschreibung, Pruefer
'
End Sub
Public Function lvOutlook(outDate As Date, outSubject As String, outBody As String) As Boolean 'boolean typ kann wahr oder falsch speichern
'Hier beginnen die Termine
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem)
With apptOutApp
'Datum und Uhrzeit - als Start-Uhrzeit 8:00 -
.Start = Format(Cells(4).Value, "dd.mm.yyyy") & " 09:00" ' Es kann auch eine andere Uhrzeit festgelegt werden.
'.Start = Format(outDate, "dd.mm.yyy") & " 09:00" ' Es kann auch eine andere Uhrzeit festgelegt werden.
'.Date = outDate
'Termininfo
.Subject = outSubject
'oder der Betreff steht in der Spalte rechts von den Terminen
' .Location = outlocation ' 'Ort
.Body = outBody '
'.Duration = outDauer ' 1 Std. = "60" Dauer in Minuten
'Erinnerung setzen in Outlook (hier inaktiv)
'
.ReminderPlaySound = True
'Erinnerung wiederholen
.ReminderSet = True
'Termin speichern
.Save
End With
Set apptOutApp = Nothing
Set OutApp = Nothing
'Debug.Print
lvOutlook = True
MsgBox "Termin an Outlook übertragen."
Exit Function
ErrOutLook:
Set apptOutApp = Nothing
Set OutApp = Nothing
lvOutlook = False
MsgBox "Termin konnte in Outlook nicht eingetragen werden. Fehler:" & Err.Description
End Function
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 340507
Url: https://administrator.de/forum/vba-excel-datum-als-outlook-termin-mit-knopfdruck-datum-wird-falsch-eingetragen-340507.html
Ausgedruckt am: 22.02.2025 um 11:02 Uhr
13 Kommentare
Neuester Kommentar

Wenn deine Zelle in Excel nicht im Datumsformat formatiert ist und sie als Text vorliegt musst du sie in ein Datum umwandeln:
Wenn die Zelle bereits Datumsformat (intern) hat dann reicht:
Dazu auch mal hier reinschauen
Mit Excel einen Termin in Outlook erzeugen
Gruß
.Start = CDate(Cells(4).Value)
.Start = Cells(4).Value
Mit Excel einen Termin in Outlook erzeugen
Gruß

Zeilen 28/29 ...
Enddatum angeben und Datum richtig formatieren und umwandeln. Du machst es einfach falsch.
Du verweist sicher mit Cells(4).Value auf die falsche Zelle!
Enddatum angeben und Datum richtig formatieren und umwandeln. Du machst es einfach falsch.
Du verweist sicher mit Cells(4).Value auf die falsche Zelle!
meine VBA Kenntnisse sind wirklich nicht gut.
Dann:
Vollkommen durcheinander das ganze, du scheinst nicht zu verstehen was eine Function ist und wie diese mit Parametern arbeitet ....
With Excel.Selection
StartDatum = Cells(.Row,6).Value
Pruefer = Cells(.Row,7).Value
Beschreibung = Cells(.Row,8).Value
lvOutlook StartDatum, Beschreibung, Pruefer
End With
Public Function lvOutlook(outDate As Date, outSubject As String, outBody As String)
'Hier beginnen die Termine
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem)
With apptOutApp
.Start = outDate
'....
'..
End Function

Hier steht alles was du wissen musst
Mit Excel einen Termin in Outlook erzeugen
VBA beibringen werden wir dir hier sicherlich nicht, dafür musst du schon selber sorgen!
Mit Excel einen Termin in Outlook erzeugen
VBA beibringen werden wir dir hier sicherlich nicht, dafür musst du schon selber sorgen!

Tja, wundert mich ehrlich gesagt nicht wenn man nur Copy n' Paste macht und die Threads nicht liest und die Zellbezüge an das eigene Sheet anpasst ...!!

Zitat von @133519:
Alles klar! Trotzdem danke für deine Hilfe, auch wenn die Verbesserungen die du vorgeschlagen hast nicht funktioniert haben.
Die funktionieren, aber wenn du die richtige Zeile des zu erstellenden Termins nicht markierst wird da eben nichts draus. Du scheinst ja keinerlei Ambitionen zu haben die Dinge überhaupt zu verstehen, was man daran sieht das du anscheinend den Code aus dem anderen Thread einfach nur rüberkopiert hast und die Zellbezüge nicht an dein Sheet und deine Umgebung angepasst hast, denn der Code aus dem anderen Thread funktioniert hier einwandfrei (getestet), also hast du es nur falsch umgesetzt, ganz einfach.Alles klar! Trotzdem danke für deine Hilfe, auch wenn die Verbesserungen die du vorgeschlagen hast nicht funktioniert haben.