AW: Termine ab Excel-Arbeitsmappe ins Outlook
06.05.2015 11:35:25
fcs
Hallo Pascal,
im Prinzip findest du unter der RECHERCHE mit dem Suchbegriff "Termine nach Outlook" schon viel passendes.
z.B.: https://www.herber.de/forum/archiv/1276to1280/1279898_Termine_per_Makro_von_Excel_nach_Outlook_exportier.html#1279898
Hier musst du natürlich den Teil des Makros, der die Daten für die Termine entsprechend zusammenstellt, anpassen. Da bei geringen VBA-Kennnissen dies natürlich etwas schwierig ist, habe ich das Makro mal soweit angepasst, wie ich das ohne Outlook machen konnte .
Beim Ort des Termins muss ich passen, da ich den Namen des entsprechenden Outlook-Unterobjekts nicht kenne.
Gruß
Franz
'Code in einem allgemeinen Modul der Datei
Option Explicit
Dim objOutlook As Object, objNameSpace As Object
Dim objMapiFolder As Object
Sub Start() 'Dieses Makro der Schaltfläche aus den Formular-Steuerelementen zuweisen
Dim ArrayData, n&, strBody$
Dim strBetreff1 As String, dblDauerMin As Double
dblDauerMin = 15 'Standarddauer der Termine
strBody = "" 'evtl. anpassen oder löschen
With ActiveSheet 'Activeworkbook.Worksheets("Testhausen")
n = .Cells(.Rows.Count, 1).End(xlUp).Row 'letzte Zeile mit Daten in Spalte A
If n "" Then 'Uhrzeit in Spalte H vorhanden
If IsDate(ArrayData(n, 7)) And IsNumeric(ArrayData(n, 8)) Then 'Datum und Uhrzeit _
Beginn ist eingetragen
If ArrayData(n, 4) "" Then 'Beschreibung ist eingetragen
TermineSchreiben strBetreff:=strBetreff1 & ArrayData(n, 4), _
vonDatum:=CDate(.Sum(ArrayData(n, 7), ArrayData(n, 8))), _
bisDatum:=CDate(.Sum(ArrayData(n, 7), ArrayData(n, 8) + dblDauerMin / 1440)) _
, _
strBody:=strBody, _
strLocation:=ArrayData(n, 3)
Else
MsgBox "In Zeile " & (n + 3) & " fehlt die Beschreibung", , _
"Outlook-Termine erstellen"
End If
Else
MsgBox "In Zeile " & (n + 3) & " ist Datum und/oder Zeit ein ungültiger Eintrag", , _
_
"Outlook-Termine erstellen"
End If
End If
Next n
End With
VerbindungOutlook True
MsgBox "fertig"
End Sub
Sub VerbindungOutlook(booCancel As Boolean)
'Exit Sub ' testzeile ohne Outlook
'Outlook-Objekte setzen/zurücksetzen
If booCancel Then
Set objNameSpace = Nothing
Set objNameSpace = Nothing
Set objMapiFolder = Nothing
Else
Set objOutlook = CreateObject("Outlook.Application")
Set objNameSpace = objOutlook.GetNamespace("MAPI")
Set objMapiFolder = objNameSpace.GetDefaultFolder(9)
End If
End Sub
'Für Termine ********************************************************************************** _
Sub TermineSchreiben(ByVal strBetreff As String, ByVal vonDatum As Date, _
ByVal bisDatum As Date, ByVal strBody As String, ByVal strLocation As String)
Dim LMinuten As Long
Dim booFind As Boolean
Dim objItems As Object
'dauer in Minuten berechnen
LMinuten = Application.WorksheetFunction.Round((bisDatum - vonDatum) * 1440, 0)
'Exit Sub ' testzeile ohne Outlook
Set objItems = objMapiFolder.Items
objItems.Sort "[Start]"
objItems.IncludeRecurrences = True
Set objItems = objItems.Restrict("[Start] >= '" & Format(vonDatum, "dd.mm.yyyy hh:mm") & "'" & _
_
"AND [Start]