Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Outlook Termin via VBA mit Body aus der

Outlook Termin via VBA mit Body aus der
28.03.2020 18:16:07
Curly
Guten Abend zusammen,
ich habe folgendes Problem, ich lasse mir via Excel einen Outlook Termin erstellen.
In diesem Termin möchte ich als Body die Tabelle eines Arbeitsblattes haben Range("A1:J29")
Das komische ist es funktioniert nur wenn ich einen "Haltepunkt" im VBA Code setzte bei Set apptOutApp = Nothing
wenn der Haltepunkt nicht da ist, fügt er mir in den Terminbody auch nichts ein....
Sämtliche versuche mit Application.Wait etc schlugen fehl.
Hat jemand vielleicht noch eine andere Idee?
Option Explicit
Option Private Module
Public Function OutlookTermin(outDate As String, outStartTime As String, outDauer As Integer,  _
outSubject As String, rng As Range, outlocation As String, Categories As String) As Boolean
Dim OutApp As Object, apptOutApp As Object
rng.Copy
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1)
With apptOutApp
.Start = Format(outDate, "dd.mm.yyyy") & " " & Format(outStartTime, "hh:mm")
.Subject = outSubject
.Location = outlocation
.Duration = outDauer
.Body = ""
.ReminderMinutesBeforeStart = 1440
.ReminderPlaySound = True
.ReminderSet = True
.Categories = Categories
.Display
End With
SendKeys "^v", True
Call KeyOn
Set apptOutApp = Nothing
Set OutApp = Nothing
End Function
Vielen Dank und schönes Wochenende
Bleibt gesund, Curly
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook Termin via VBA mit Body aus der
29.03.2020 14:41:48
Curly
Moin,
keiner vielleicht eine Idee oder Möglichkeit wie man es anders lösen könnte?
Gruß Curly
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Outlook Termine mit VBA aus Excel erstellen


Schritt-für-Schritt-Anleitung

Um einen Outlook-Termin mit VBA aus Excel zu erstellen, gehe wie folgt vor:

  1. Öffne Excel und drücke Alt + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke auf Einfügen > Modul.

  3. Füge den folgenden VBA-Code ein:

    Public Function OutlookTermin(outDate As String, outStartTime As String, outDauer As Integer, _
    outSubject As String, rng As Range, outlocation As String, Categories As String) As Boolean
       Dim OutApp As Object, apptOutApp As Object
       rng.Copy
       Set OutApp = CreateObject("Outlook.Application")
       Set apptOutApp = OutApp.CreateItem(1) ' 1 steht für einen Termin
       With apptOutApp
           .Start = Format(outDate, "dd.mm.yyyy") & " " & Format(outStartTime, "hh:mm")
           .Subject = outSubject
           .Location = outlocation
           .Duration = outDauer
           .Body = ""
           .ReminderMinutesBeforeStart = 1440
           .ReminderPlaySound = True
           .ReminderSet = True
           .Categories = Categories
           .Display
       End With
       SendKeys "^v", True
       Set apptOutApp = Nothing
       Set OutApp = Nothing
    End Function
  4. Passe die Parameter wie outDate, outStartTime, outDauer, outSubject, rng, outlocation und Categories an Deine Bedürfnisse an.

  5. Führe die Funktion aus, um den Termin in Outlook zu erstellen.


Häufige Fehler und Lösungen

  • Fehler: Nichts wird in den Body eingefügt:

    • Überprüfe, ob der Haltepunkt im Code gesetzt ist. Manchmal ist eine kurze Verzögerung notwendig, damit Outlook den Inhalt korrekt einfügt. Verwende Application.Wait oder DoEvents nach der Display-Methode.
  • Fehler: Outlook öffnet sich nicht:

    • Stelle sicher, dass Outlook korrekt installiert und konfiguriert ist. Der Code sollte in einer Umgebung laufen, die VBA unterstützt.

Alternative Methoden

Wenn VBA keine Option ist, kannst Du auch die folgenden Methoden ausprobieren:

  • Manuelles Erstellen eines Termins: Kopiere die benötigte Information manuell aus Excel und füge sie in Outlook ein.
  • Outlook Makro verwenden: Erstelle ein spezifisches Outlook-Makro, um regelmäßig Termine basierend auf einer Vorlage zu generieren.

Praktische Beispiele

Hier ist ein Beispiel, wie Du einen Termin aus einem bestimmten Bereich in Excel erstellen kannst:

Dim rng As Range
Set rng = ThisWorkbook.Sheets("DeinBlatt").Range("A1:J29")
OutlookTermin "15.03.2023", "10:00", 60, "Meeting", rng, "Büro", "Wichtig"

In diesem Beispiel wird ein Termin für den 15. März 2023 um 10:00 Uhr erstellt, dessen Body die Daten aus dem Bereich A1:J29 enthält.


Tipps für Profis

  • Verwende Outlook Terminserie erstellen, wenn Du mehrere Termine anlegen möchtest. Dies kann die Effizienz steigern.
  • Dokumentiere Deine VBA-Funktionen: Füge Kommentare zu Deinem Code hinzu, um die Lesbarkeit und Wartbarkeit zu verbessern.
  • Teste den Code in einer sicheren Umgebung, bevor Du ihn in produktiven Daten verwendest, um unerwartete Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich einen Outlook-Termin aus einer E-Mail erstellen?
Du kannst den Inhalt der E-Mail manuell kopieren und in deinem VBA-Skript verwenden oder ein Outlook-Makro erstellen, um diesen Prozess zu automatisieren.

2. Welche Excel-Version benötige ich für den VBA-Code?
Der Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, wie Excel 2016, 2019 oder Excel 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige