Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1876to1880
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Terminvon outlook nach xls mit vba

Terminvon outlook nach xls mit vba
24.03.2022 11:07:40
outlook
Hallo vba cracks
Ich erzeuge mittels vba einen Termin für outlook, lasse diesen aber nur anzeigen, damit der user einen passenden Zeitrahmen für sich und die "RequiredAttendees" suchen kann. Der user versendet diesen Termin dann direkt im outlook mittels "Senden".

Sub Outlook_Termin()
'Outlook Bibliothek aktivieren
'Variablen dimensionieren
Dim oOutlookApp As Object
Dim oTermin As Object
'Verbindung/Referenz zu Outlook
Set oOutlookApp = CreateObject("Outlook.Application")
'Termin erzeugen
Set oTermin = oOutlookApp.CreateItem(1)
'Termin erstellen
With oTermin
.Display
.Subject = ActiveSheet.Range("A1").Value & " - " & ActiveSheet.Range("C4").Value & " - " & ActiveSheet.Range("B4").Value
.RequiredAttendees = Sheets("help").Range("A2").Value
.Duration = 240
.Body = "Hello Colleagues," & Chr(13) & _
" " & Chr(13) & _
"Text Bla Bla Bla" & Chr(13) & _
" " & Chr(13) & _
"Regards" & Chr(13) & Chr(13) 'Nachricht
End With
'Variablen leeren
Set oApp = Nothing
Set oTermin = Nothing
End Sub
Was ich jetzt aber brauche: wie bekomme ich das ausgewählte Datum, Start und Ende zurück ins Excel, in die Zelle A4 (Datum) und A5 (Zeit "hh:mm - hh:mm") ?
Leider finde ich in den bekannten Foren nichts vernünftiges was ich benutzen und anpassen kann.
Vielen Dank schon vorab für eure Hilfe
Gruß Klaus

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Terminvon outlook nach xls mit vba
24.03.2022 11:15:20
outlook
Hi Klaus,
da müsstest du dann - du ahnst es vielleicht - den Senden-Button des Termins für dich programmieren.
Ein Umweg könnte aber auch sein, dass du schon aus Excel heraus die gewünschten Daten vom User eingeben lässt, und diese dann eben genau so wie das, was du schon hast, in den Termin einträgst - User muss dann nur noch auf Senden klicken.
Ciao
Thorsten
AW: Termin von outlook nach xls mit vba
24.03.2022 11:21:27
outlook
Hi Thorsten,
danke schon mal für die spontane Antwort.
Was auch ein workaround sein kann: da ich ja den Betreff kenne, lasse ich über ein zweites Makro im Outlook-Kalender des users den Termin suchen und lasse mir die Eigenschaften zurückgeben. Aber wie funktioniert das?
Gruß Klaus
Anzeige
AW: Termin von outlook nach xls mit vba
24.03.2022 11:28:12
outlook
Hi Klaus,
ich bin in 10 Minuten für einige Stunden nicht verfügbar.
Und in 10 Minuten schaff ich es nicht, etwas Passendes zu programmieren. (ich weiß nich mal, ob ich es hinbekomme)
Aber wieso "wehrst" du dich so gegen den "Umweg"?
Vielleicht findet sich ja noch n anderer Helfer.
Dazu vllt der "Tipp-aus-Endlosschleife": Bsp-Dateien per Upload helfen immer!
Ciao
Thorsten
AW: Terminvon outlook nach xls mit vba
24.03.2022 13:01:17
outlook
Hallo Klaus,
dein Termin läuft als AppointmentItem-Object und verfügt über diverse Ereignisse gemäß der Microsoft-Dokumentation.
https://docs.microsoft.com/de-de/office/vba/api/outlook.appointmentitem
Die sollte man anzapfen können, leider ist nun die Mittagspause vorbei! Aber vielleicht hilft das als Ansatz.
Schöne Grüße
Tobias
Anzeige
AW: Terminvon outlook nach xls mit vba
28.03.2022 13:11:17
outlook
Hallo Klaus,
dies in deinem Code ergänzen zu Beginn des Moduls außerhalb deiner vorhandenen Sub. In dieser Dim oTermin dann nicht mehr als Object deklarieren sondern die Zeile komplett streichen und in den Verweisen muss der Verweis auf die Microsoft Outlook Object Library gesetzt werden.

Private WithEvents oTermin As AppointmentItem
Private Sub oTermin_Send(Cancel As Boolean)
'Testcode
MsgBox "Termindaten werden übernommen"
ThisWorkbook.Worksheets("BITTE ÄNDERN").Range("A4") = Format(oTermin.Start, "dd.mm.yyyy")
ThisWorkbook.Worksheets("BITTE ÄNDERN").Range("A5") = Format(oTermin.Start, "hh:mm") & " - " & Format(oTermin.End, "hh:mm")
Set oTermin = Nothing
End Sub
Den Worksheetnamen musst du entsprechend anpassen. Ich habe leider kein Outlook, daher kann ich es selber nicht testen. Es würde mich aber sehr interessieren ob es funktioniert!
Schöne Grüße
Tobias
Anzeige
AW: Terminvon outlook nach xls mit vba
28.03.2022 13:43:56
outlook
Hallo Tobias,
leider nicht.
-> Private WithEvents oTermin As AppointmentItem -> das kann ich nur in ein Objektmodul schreiben
-> deine private_sub... wird ganz ignoriert
Ich glaube, ich hab deine Anleitung nicht ganz verstanden. Könntest du bitte direkt im skript deine geplante Änderung machen?
Danke Gruß Klaus
Private WithEvents oTermin As AppointmentItem

Private Sub oTermin_Send(Cancel As Boolean)
'Testcode
MsgBox "Termindaten werden übernommen"
ThisWorkbook.Worksheets("1st_Meeting").Range("A4") = Format(oTermin.Start, "dd.mm.yyyy")
ThisWorkbook.Worksheets("1st_Meeting").Range("A5") = Format(oTermin.Start, "hh:mm") & " - " & Format(oTermin.End, "hh:mm")
Set oTermin = Nothing
End Sub
Sub Outlook_Termin_1st()
Dim oOutlookApp As Object
Set oOutlookApp = CreateObject("Outlook.Application")
Set oTermin = oOutlookApp.CreateItem(1)
With oTermin
.Display
.Subject = ActiveSheet.Range("A1").Value & " - " & ActiveSheet.Range("C4").Value & " - " & ActiveSheet.Range("B4").Value
.RequiredAttendees = Sheets("help").Range("A2").Value
.Duration = 240 'Dauer
'Nachricht
.Body = "Hello Colleagues," & Chr(13) & _
" " & Chr(13) & _
" " & Chr(13) & _
"Regards" & Chr(13)
End With
'Variablen leeren
Set oApp = Nothing
Set oTermin = Nothing
End Sub
Anzeige
AW: Terminvon outlook nach xls mit vba
24.03.2022 15:55:42
outlook
Hallo
Mit ".Display(True)" hast Du ein modales Fenster.
Damint kannst Du dann die geänderten Werte auslesen. z.B.

Debug.Print oTermin.Start
Debug.Print oTermin.End
'Variablen leeren
Set oApp = Nothing
Set oTermin = Nothing
Peter
AW: Terminvon outlook nach xls mit vba
25.03.2022 13:24:48
outlook
Hallo,
vielen Dank für die Vorschläge. Leider bringen die mich nicht ans Ziel (bin nicht der fitteste in vba).
Zurück zu meiner ursprünglichen Frage: wie kann ich den erzeugten Termin (den Namen des Termins kenne ich ja) auslesen und das Datum und Zeit in bestimmte Zellen schreiben?
Ich hoffe, mir kann geholfen werden. Danke schon vorab
Gruß Klaus
Anzeige
AW: Terminvon outlook nach xls mit vba
26.03.2022 08:00:27
outlook
Hi Klaus,
a) du kennst den Titel des Termins
hmm? Wenn ich für Montag einen Termin für Team-Meeting versende, nenne ich den Termin = "Termin-Meeting"
Und wenn ich 1 Woche später (oder wann auch immer) wieder ein Team-Meeting veranstalten will, versende ich wieder einen Termin mit dem Titel "Termin-Meeting".
Woher weiß ich jetzt nach deiner Idee (du kennst ja den Termintitel), dass beim Auslesen der Termine ich - den richtigen - Termin erwische? - es gibt ja viele Termine mit dem selben Titel.
b) in meinem letzten Beitrag gab ich dir den Tipp, per Upload eine Bsp-Datei zu zeigen....haste noch nich getan...wieso?
Ciao
Thorsten
Anzeige
AW: Terminvon outlook nach xls mit vba
28.03.2022 10:56:51
outlook
Hallo Thorsten,
danke dass du noch immer da bist :-)
a) der Termin ist immer eindeutig benannt und ist auch kein Regeltermin. Die Suche findet also immer nur einen Termin.
b) Ein upload einer Datei ist nicht möglich, da hat unsere IT was dagegen, sorry dafür. Ich kann auch keine Beispieldateien herunterladen. Ist bei uns sehr restriktiv.
Gruß Klaus
AW: Terminvon outlook nach xls mit vba
28.03.2022 11:38:13
outlook
Hi Klaus,
nur sicherheitshalber noch mal:
anhand deines Codes (fixe Zellvorgaben, keine dynamischen Einträge in nächste, freie Zeile oder so)...

.Subject = ActiveSheet.Range("A1").Value & " - " & ActiveSheet.Range("C4").Value & " - " & ActiveSheet.Range("B4").Value
...und der Info Datum, Start und Ende zurück ins Excel, in die Zelle A4 (Datum) und A5 Zeit...
...befinden sich die Daten in Tabelle wie auf diesem Bild?
Userbild
DAS würde bedeuten, dass - jeder Termin - der mit dem anderen Code (den du haben willst) bei den Kollegen ausgelesen wird , immer wieder Datum + Uhrzeit in A4 + A5 überschreibt.
Bedeutet:
Wenn du bspw von 4 Kollegen den Termin ausliest, um Datum + Uhrzeit zu erhalten, dass dann immer nur Datum + Uhrzeit vom letzten Kollegen in A4 + A5 sichtbar ist, weil ja die Werte der vorherigen 3 Kollegen überschrieben wurden.
Ist es das, was du wirklich willst?
Ciao
Thorsten
Anzeige
AW: Terminvon outlook nach xls mit vba
28.03.2022 12:10:26
outlook
Hallo,
ja, genau so soll es sein, wäre perfekt. Die Tabelle ist der Master, nach dem das Datum und Zeit drinne steht, wird eine Kopie auf einem Extra-Sharepoint erzeugt. Diese Kopie hat dann weder Formeln noch Zahlen, sondern nur noch Textinhalte die schreibgeschützt sind. Den Master kann dann der Nächste wieder benutzen.
Gruß Klaus
AW: Terminvon outlook nach xls mit vba
28.03.2022 18:22:12
outlook
So Klaus,
mit diesem Code, eingefügt in ein allgemeines Modul, funktionierts in meinem Outlook:

Sub sbOL_StartEnd()
Dim Outl_App As Object, Namens_R As Object, akt_Ordner As Object, Element_kal As Object, liIdx As Integer, larDateTime
Const olFolderCalendar As Long = 9
Set Outl_App = CreateObject("Outlook.Application")
Set Namens_R = Outl_App.GetNamespace("MAPI")
Set akt_Ordner = Namens_R.GetDefaultFolder(olFolderCalendar) 'Beachte 1 
Anders als so kann ich es nicht darstellen, da ich nicht diese Code-Darstell-Tools wie andere Teilnehmer benutze.
Und du kannst ja Dateien weder up- noch downloaden - direkt in einer Datei wäre bestimmt alles übersichtlicher...aber shit happens...
Also, du musst vor allem Hinweis BEACHTE 1 beachten!
Die restlichen Kommentare sind nur dafür da, dass du den Code vllt schneller/besser verstehst, was wann wo passiert...usw
Aber BEACHTE 1 musst du unbedingt im Code anpassen - sonst wird auch nur dein Std-Outlook-Kalender mit dem Code kontrolliert/ausgelesen/durchsucht...was auch immer.
Ach ja, und, wie du erwähntest, nach jedem einzelnen Treffer müsstest du die Datei zwischenspeichern (immer anderer Dateiname), da ja Datum + Uhrzeit immer überschrieben wird.
Hilfts?
Eine schnellere Antwort als sonst wäre schön, da dein Beitrag bald im Archiv "verschwindet".
Ciao
Thorsten
Anzeige
AW: Termin von outlook nach xls mit vba
29.03.2022 07:27:10
outlook
Hi Thorsten,
ein Traum wird wahr !!
Herzlichsten Dank dafür, funktioniert super, genau was ich brauche.
Auch ein Danke an den Tobias.
Gruß Klaus
AW: Termin von outlook nach xls mit vba
29.03.2022 07:45:16
outlook
Moin Moin :-)
Na, freut mich, dass ich helfen konnte :-)
Ciao
Thorsten

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige