Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
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

Outlook Termin Body auslesen bearbeiten und zurückschreiben

Outlook Termin Body auslesen bearbeiten und zurückschreiben
01.03.2024 15:20:01
krug96
Hallo,
nach langer Zeit bräuchte mal wieder eure Hilfe.

Ich schreibe in einen freigegebenen Kalender Termine. Das funktioniert problemlos.
Wie kann ich in Outlook in dem freigegebenen Kalender nach einem bestimmten Termin suchen, diesen auslesen, im Bereich "body" Änderungen (es soll am Ende Zeilen eingefügt werden) vornehmen und dann den den geänderten "body" wieder zurückzuschreiben?

Vielen Dank für eure Hilfe.


PS: zum Übertragen an Outlook habe ich mir diesen Code von https://vbatrainer.de/outlook-termin/ entsprechend angepasst:


Sub Outlook_Termin()
'Outlook Bibliothek aktivieren
'Variablen dimensionieren
Dim oApp As New Outlook.Application
Dim oTermin As Outlook.AppointmentItem
Set oTermin = oApp.CreateItem(olAppointmentItem)

'Termin erstellen
With oTermin
'.Display
.Subject = 'code'
.RequiredAttendees = 'code'
'.OptionalAttendees
.Start = 'code'
.Duration = 60
.Body = "Hallo," & Chr(10) & "ich möchte über Excel sprechen"
.Save
End With

'Variablen leeren
Set oApp = Nothing
Set oTermin = Nothing
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook Termin Body auslesen bearbeiten und zurückschreiben
01.03.2024 16:52:30
ralf_b
copilot läßt grüßen und schickt dir einen Code der nach Kalendereinträgen sucht, indem zwei Suchfilter einstellbar sind.
am Ende des Code ist eine kleine for-schleife, mit der die nicht weggefilterten Einträge durchlaufen werden. Hier kannst du dann tätig werden.


Sub FindAppts()
Dim myStart As Date
Dim myEnd As Date
Dim oCalendar As Outlook.Folder
Dim oItems As Outlook.Items
Dim oItemsInDateRange As Outlook.Items
Dim oFinalItems As Outlook.Items
Dim obOutl

Dim oAppt As Outlook.AppointmentItem
Dim strRestriction As String

' Definiere den Zeitraum für die Abfrage
myStart = Date
myEnd = DateAdd("d", 30, myStart)

Set obOutl = New Outlook.Application

' Erhalte alle Elemente im Standardkalenderordner
Set oCalendar = obOutl.Session.GetDefaultFolder(olFolderCalendar)
Set oItems = oCalendar.Items

' Konstruiere den Filter für den nächsten 30-Tage-Zeitraum
strRestriction = "[Start] >= '" & Format$(myStart, "mm/dd/yyyy hh:mm AMPM") & "' AND [End] = '" & Format$(myEnd, "mm/dd/yyyy hh:mm AMPM") & "'"

' Wende die Abfrage auf Elemente im Standardkalenderordner an
Set oItemsInDateRange = oItems.Restrict(strRestriction)

' Erstelle eine zweite Abfrage für den Terminbetreff mit dem Wort "team"
strRestriction = "[Subject] LIKE '%team%'"
Set oFinalItems = oItemsInDateRange.Restrict(strRestriction)

' Sortiere und gib die Startzeit aller zurückgegebenen Termine aus
For Each oAppt In oFinalItems
Debug.Print "Termin gefunden: " & oAppt.Subject & " am " & oAppt.Start
Next oAppt
End Sub
Anzeige
AW: Outlook Termin Body auslesen bearbeiten und zurückschreiben
05.03.2024 14:13:41
krug96
Hallo Ralf_b,
vielen Dank für Deine Rückmeldung. Leider bin ich aus dem nicht schlau geworden.
Aus diesem Grund habe ich Dir mal eine Datei vorbereitet, damit Du siehst, was ich es gerne umsetzen möchte.

In der UserForm gibt es die Felder, die man auch in Outlook befüllen kann.
In dieser Datei sind von mir keine Abfragen oder sonstige Überprüfungen eingebaut. Deswegen muss beim Datum xx.xx.xxxx und bei der Uhrzeit xx:xx das Format entsprechend richtig eingegeben werden.

Hier die Datei: https://www.herber.de/bbs/user/167555.xlsm

In die TextBox1 wird von mir der Wert (z.B. "0815") zum Suchen in Outlook eingegeben.
Diese ID ist ein Teil von dem Text, der als Subject in Outlook steht (z.B. "ich bin ein TestText im Feld Subject - 0815")

Ablauf:
Mit dem CommandButton1 würde ich gerne mit dem Wert aus der TextBox1 in Outlook suchen und das Ergebnisse dann in die Felder der UserForm zurückschreiben, dann in der TextBox2 (.body) Änderungen vornehmen und über CommandButton2 den Eintrag in Outlook überschreiben bzw. beim Auslesen in die Userform den Eintrag in Outlook löschen und dann neu in Outlook erstellen.

Viele Grüße
krug96
Anzeige
AW: Outlook Termin Body auslesen bearbeiten und zurückschreiben
05.03.2024 16:10:32
krug96
Hallo Ralf_b,

ich habe mir jetzt folgenden Code "zusammengebaut".
Leider klappt das nur mit Terminen in meinem persönlichen Kalender und nicht mit einem freigegebenen Kalender.
Wo muss ich was anpassen, dass das auf den freigegebenen Kalender über Dim strName zugreift?

Vielen Dank.




Private Sub CommandButton1_Click()

Dim objApp As Outlook.Application
Dim objTermin As Object
Dim finden As String
Dim strName As String
Dim i As Long

On Error Resume Next

' ### freigegebener Kalender in Outlook angeben ###
strName = "kurs"

Set objApp = CreateObject("Outlook.Application")

finden = Me.TextBox1.Value

For Each objTermin In objApp.GetNamespace("MAPI").GetDefaultFolder(9).Items
If InStr(objTermin.Subject, finden) > 0 Then
With objTermin
Me.TextBox1.Value = .Subject
Me.TextBox6.Value = .Location
Me.TextBox3.Value = Format(.Start, "dd.mm.yyyy")
Me.TextBox4.Value = Format(.Start, "hh:mm")
Me.TextBox5.Value = Format(.End, "hh:mm")
Me.TextBox2.Value = .Body
End With
End If
Next

End Sub

Anzeige
AW: Outlook Termin Body auslesen bearbeiten und zurückschreiben
05.03.2024 21:53:31
ralf_b
ich bin keine outlookprofi, deshalb warne ich davor hier ohne Kenntnisse herumzupfuschen.
Gerade Termine haben sehr viele Eigenschaften.
ich habe dir das Beispiel so umgebaut das man Termine des aktuellen Jahres in eine Listbox einliest.
Die Eingrenzung auf das Jahr was im ersten Code schon zu sehen.
Klick auf einen Listboxeintrag bewirkt das Füllen der Textboxen(teilweise umgesetzt).
Klick auf den zweiten Button durchsucht alle Kalendereinträge und vergleicht mit der globalenID des angeklickten Listeneintrages. Bei Übereinstimmung wird der Termin mit den Textboxwerten in den Kalender geschrieben.
Klick auf Neu erzeugt einen Neuen Termin und speichert diesen mit den Werten aus den Textboxen im Kalender.
Testen ob das alles so läuft wie gedacht mußt du selbst und die fehlenden Zuordnungen der Textboxen und Listboxeinträge noch vervollständigen. Wenn du das nicht schaffst , dann lass lieber die Finger davon.
https://www.herber.de/bbs/user/167680.xlsm
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige