Excel --> Outlook, anderer Kalender

Moderator: ModerationP

Excel --> Outlook, anderer Kalender

Beitragvon MJR10 » 10. Jul 2018, 14:09

Hallo ich möchte gerne über Excel mehrere Termine in Outlook erstellen, jedoch nicht im Standard Kalender sondern in einem bereits angelegten. Ich hab leider keine Ahnung wie ich meinen Code anpassen muss.
Da ich mehrere Termine erstelle habe ich einen Funktion daraus gebastelt, hier mal der bereits bestehende Code:

Code: Alles auswählen
Function termin(Tag, Anfang, Betreff)
    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 Einstellungen vornehmen
      With oTermin
          .Start = Format(Tag, "dd.mm.yyyy") & " " & Anfang
          'Betreff, Termintitel
          .Subject = Betreff
          'Inhalt des Termins
          .Body = ""
          'Ort
          .Location = ""
          'Dauer in Minuten
          .Duration = "0"
          'Erinnerung vor Start in Minuten
          .ReminderMinutesBeforeStart = 10
          'Sound abspielen
          .ReminderPlaySound = False
          'Erinnerung setzen
          .ReminderSet = False

          'Speichern
          .Save
          'Anzeigen
          '.Display

      End With

      Set oTermin = Nothing
      Set oOutlookApp = Nothing

End Function

MJR10
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 16. Jun 2011, 20:32

Re: Excel --> Outlook, anderer Kalender

Beitragvon DerHoepp » 10. Jul 2018, 14:30

Hi,

fragen zum Outlook-Objektmodell sind im Nachbarforum wahrscheinlich besser aufgehoben.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8221
Registriert: 14. Mai 2013, 11:08

Re: Excel --> Outlook, anderer Kalender

Beitragvon MJR10 » 11. Jul 2018, 11:50

Kann ich den Beitrag verschieben, oder muss das ein Admin machen?`
Ich hab leider nichts gefunden, wie es gehen würden...
MJR10
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 16. Jun 2011, 20:32

Re: Excel --> Outlook, anderer Kalender

Beitragvon DerHoepp » 11. Jul 2018, 12:09

Ich hab das grad mal über den Meldebutton (Ausrufezeichen im Dreieck) gemeldet. das sollte funktionieren. ansonsten machste einfach ein neues thema auf.
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8221
Registriert: 14. Mai 2013, 11:08

Re: Excel --> Outlook, anderer Kalender

Beitragvon mmarkus » 11. Jul 2018, 19:27

MJR10 hat geschrieben:jedoch nicht im Standard Kalender sondern in einem bereits angelegten.


Dazu verwendet man die Items.add Methode.

LG Markus
ms access what else
mmarkus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1577
Registriert: 16. Apr 2012, 16:07
Wohnort: Oberösterreich

Re: Excel --> Outlook, anderer Kalender

Beitragvon MJR10 » 11. Jul 2018, 20:54

Mh das sagt sich so leicht für einen der schon ewig programmiert. Ich mach das noch nicht so lange und bin ehrlich gesagt schon froh dass ich das hinbekommen habe.
kommt das dann vor "...CreateItem(1)"?
Den Kalender gibt es schon und der heißt "Private Termine", muss ich den dann überhaupt noch erstellen oder nur irgendwie ansteuern?
MJR10
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 16. Jun 2011, 20:32

Re: Excel --> Outlook, anderer Kalender

Beitragvon DerHoepp » 11. Jul 2018, 21:55

Moin von mir,

@markus,
mich würde da auch interessieren, wie man das Parent-Objekt findet, um Items zu adden. Kannst du da vielleicht noch mal was zu sagen (hab selbst kein Outlook zum Testen)

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8221
Registriert: 14. Mai 2013, 11:08

Re: Excel --> Outlook, anderer Kalender

Beitragvon mmarkus » 11. Jul 2018, 22:08

DerHoepp hat geschrieben:mich würde da auch interessieren, wie man das Parent-Objekt findet


Man schaut einfach nach, wie der Pfad aussieht - da muss man nicht suchen.
Dazu muss man aber vor dem Rechner sitzen. :P
ms access what else
mmarkus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1577
Registriert: 16. Apr 2012, 16:07
Wohnort: Oberösterreich

Re: Excel --> Outlook, anderer Kalender

Beitragvon mmarkus » 11. Jul 2018, 22:19

MJR10 hat geschrieben:Mh das sagt sich so leicht für einen der schon ewig programmiert. Ich mach das noch nicht so lange und bin ehrlich gesagt schon froh dass ich das hinbekommen habe.
kommt das dann vor "...CreateItem(1)"?
Den Kalender gibt es schon und der heißt "Private Termine", muss ich den dann überhaupt noch erstellen oder nur irgendwie ansteuern?


CreateItem wird eben nicht verwendet, sondern Items.add

Vom Prinzip her, wenn der Kalender ein Unterordner vom Standard Kalender ist:

Code: Alles auswählen
   
     Dim oFolder As outlook.Folder
     Dim Appointment As AppointmentItem
     
     Set oFolder = OutlookApplication.Session.GetDefaultFolder(olFolderCalendar).Folders("Private Termine")
     Set Appointment = oFolder.Items.Add




oder so:
Code: Alles auswählen
   
     
     with OutlookApplication.Session.GetDefaultFolder(olFolderCalendar).Folders("Private Termine").Items.Add

           ....
     end with
ms access what else
mmarkus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1577
Registriert: 16. Apr 2012, 16:07
Wohnort: Oberösterreich

Re: Excel --> Outlook, anderer Kalender

Beitragvon MJR10 » 12. Jul 2018, 07:32

Okay, ich sehe ich hab grundlegende Verständnisprobleme :D
Ich dachte mit CreateItem wird der Kalendereintrag erzeugt. Ich hab das leider alles zusammenkopiert und mit Try And Error so lange rumgebastelt bis es funktioniert hat, jetzt komme ich aber leider nicht mehr weiter.

Kannst du mir vielleicht sagen was die einzelnen Zeilen bewirken, dann kann ich vielleicht nachvollziehen welche Zeilen ich bei mir rausschmeißen muss und wo ich deine Zeilen einfügen muss, damit es funktioniert.

Danke aber schon mal, dass du dich meinem Thema annimmst :)
MJR10
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 16. Jun 2011, 20:32

Re: Excel --> Outlook, anderer Kalender

Beitragvon DerHoepp » 12. Jul 2018, 09:35

Hallo MJ,

.CreateItem ist eine Methode des Application-Objekts und erzeugt Items (also zum Beispiel Termine oder Mails) im Standardordner. In der Onlinehilfe steht dazu:
The CreateItem method can only create default Outlook items. To create new items using a custom form, use the Add method on the Items collection.

das bedeutet, willst du ein Item erzeugen, dass nicht den Standardeinstellungen (wie zum Beispiel einem abweichenden Kalender) entspricht, muss du die .Add-Methode der speziellen .Items()-Collection ansprechen. Items()-Collections kommen in mehreren Outlook-Objekten vor und die .Add-Methode würde jeweils ein neues Item im gewählten Outlook-Objekt erzeugen. Du musst also als nächstes herausfinden, welches das richtige Elternelement ist, in dessen Items-Collection du mit .Add ein neues Element hinzufügen willst.
Outlook-Objekte, die Items enthalten sind zum Beispiel die Folder-Objekte. Wahrscheinlich werden abweichende Kalender in Outlook auch als eigenes Folder-Objekt verwaltet. Aber hier setzt eben das Outlookwissen ein, was über die reine Onlinehilfe hinaus geht. Deshalb hatte ich Markus ja auch gefragt, wie man denn das FolderObjekt eines abweichenden Kalenders anspricht. Die Antwort darauf lautet, dass abweichende Kalender wohl Unterordner des Default-Kalender-Folders sind und du über
Code: Alles auswählen
Set oFolder = OutlookApplication.Session.GetDefaultFolder(olFolderCalendar).Folders("Private Termine")

an den Folder dran kommst (bei Arbeit mit Excel im Latebinding musst du daran denken, die Outlook-Enum-Konstante wieder durch den Wert zu ersetzen).
Die Onlinehilfe und der Objektkatalog zum FolderObjekt verraten dir nun, dass der Folder eine Items-Collection hat, die wiederum über eine .Add()-Methode verfügt. Die .Add()-Methode wiederum hat zwei Parameter (https://msdn.microsoft.com/en-us/VBA/Ou ... od-outlook), mit dem du einen Namen und einen Typ vorgeben kannst.

Und schon bist du am Ziel.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8221
Registriert: 14. Mai 2013, 11:08

Re: Excel --> Outlook, anderer Kalender

Beitragvon MJR10 » 12. Jul 2018, 10:58

Danke schon mal für deine ausführlichen Erklärungen, es wird jetzt schon ein bisschen klarer, aber leider fehlt wahrscheinlich noch viel. Ich hab den Code jetzt mal folgendermaßen umgebaut wie ich jetzt denke dass es funktionieren müsste:
Code: Alles auswählen
Function termin2(Tag, Anfang, Betreff)
'mit diesem Makro werden die Outlook Termine erstellt. Makro sit eine Funktion und Daten werden aus der Textbox übergeben
     Dim oFolder As outlook.Folder
     Dim Appointment As AppointmentItem

      'Verbindung/Referenz zu Outlook
      Set oOutlookApp = CreateObject("Outlook.Application")

      'Termin erzeugen
     Set oFolder = OutlookApplication.Session.GetDefaultFolder(olFolderCalendar).Folders("Private Termine")
         
     Set Appointment = oFolder.Items.Add

      'Termin Einstellungen vornehmen
      With Appointment
          .Start = Format(Tag, "dd.mm.yyyy") & " " & Anfang           'Starttermin (hier bswp.: Heute in 14 Tagen um 10 Uhr)
          .Subject = Betreff                                                            'Betreff, Termintitel
          .Body = ""                                                                        'Inhalt des Termins
          .Location = ""                                                                   'Ort
          .Duration = "0"                                                                 'Dauer in Minuten
          .ReminderMinutesBeforeStart = 10                                   'Erinnerung vor Start in Minuten
          .ReminderPlaySound = False                                            'Sound abspielen
          .ReminderSet = False                                                      'Erinnerung setzen
          .Save                                                                              'Speichern
          '.Display                                                                          'Anzeigen

      End With

      Set oFolder = Nothing
      Set Appointment = Nothing
End Function


Leider kommt beim Kopilieiren die Meldung "Benutzerdefinierter Typ nicht definiert" und er markiert mir die Zeile
Code: Alles auswählen
     Dim oFolder As outlook.Folder
an
MJR10
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 16. Jun 2011, 20:32

Re: Excel --> Outlook, anderer Kalender

Beitragvon DerHoepp » 12. Jul 2018, 13:15

Moin,

wenn du in zwei Unterschiedlichen Applications arbeitest und Objekte aus unterschiedlichen Klassenbibliotheken verwendest, sollte dir bewusst sein, dass du entweder einen Verweis auf die Klassenbibliothek setzen musst, oder im Latebinding Object als Variablentyp verwendest.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8221
Registriert: 14. Mai 2013, 11:08

Re: Excel --> Outlook, anderer Kalender

Beitragvon MJR10 » 12. Jul 2018, 14:25

oje, du weißt gar nicht wie sehr du mich gerade verwirrst :D
ich muss mich wirklich erst mal mit dem Thema beschäftigen, damit ich das alles auch mal verstehe und mein Try and Erros System nicht ganz so langwierig ist.
MJR10
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 16. Jun 2011, 20:32


Zurück zu Outlook Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast