Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro für Massenmutation im Kalender
#11
Hallöchen,

sind die Kalender alle in einem Postfach?
Im Code steht derzeit diese Zeile:

Set objCalendar = objNS.GetDefaultFolder(olFolderCalendar)

Die kannst Du durch eine Zeile mit dem Postfach- und Kalendernamen ersetzen:

Set objCalendar = objNS.Folders("meinpostfach@bei-mir.de").Folders("Kalendername")

Der Kalendername dürfte bei Dir dann das mit dem export_... sein.

Den Postfachnamen seh ich im Bild nicht, du kannst Dir das auch mit der rechten Maustaste über die Eigenschaften des Kalenders anschauen. Das @.. muss bei Dir nicht dabei sein. Ich hab bei mir die Postfächer analog zur E-Mailadresse mit den @... benannt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#12
Hallo André,

vorab, ich habe den Kalendernamen auf "Abfallkalender2019" geändert.

Was heisst Postfach?

Wenn ich auf den Kalender rechts klicke erhalte ich folgendes Info:

[
Bild bitte so als Datei hochladen: Klick mich!
sehe da keine Postfachbezeichnung.



In den Konteneinstellungen steht beim Standardkonto für den Default-Ordner:

[
Bild bitte so als Datei hochladen: Klick mich!
]


Ich verstehe nicht, was mit Postfach gemeint ist.

Ich habe bei "Set objCalendar = objNS.Folders" folgende Varianten ausprobiert, "theo@meineE-Mail.ch", "Kalender", "\\MeinPC\Kalender", "MeinPC\Kalender"
aber ich erhielt immer den Fehler:
[
Bild bitte so als Datei hochladen: Klick mich!
]

Was mache ich falsch?

Danke für Deine Hilfe

Gruss

Theo
Antworten Top
#13
Hallo Theo,

die Zeile müsste so aussehen:

Set objCalendar = objNS.Folders("MeinPC").Folders("Kalender")
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#14
Guten Abend André,

habe ich gemacht. Dann bringt er aber den Standardkalender.

Wenn ich dann den Code so ändere:
Set objCalendar = objNS.Folders("MeinPC").Folders("Abfallkalender2019")

dann kommt wieder die Fehlermeldung


[
Bild bitte so als Datei hochladen: Klick mich!
]

Ich habe auch versucht, den andern, nicht importierten Kalender auszulisten, dieser ist auch im Postfach "MeinPC"


Set objCalendar = objNS.Folders("MeinPC").Folders("Kalender für Su und Theo")

gleiche Fehlermeldung..?
Antworten Top
#15
Hallo Theo,

hast recht, bei mir geht es mit einer Zeile auch nur auf den Standardordner. Probiers mal bitte mit 2 Zeilen, damit funktioniert es bei mir. Im Prinzip:

Set objCalendar = objNS.Folders("MeinPC").Folders("Kalender")
Set objCalendar = objCalendar.Folders("Abfalleimer")

Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#16
Smile 
Guten Abend oder guten Morgen André

ja, jetzt hat es auch bei mir geklappt!
:19:

Und wie mutiere ich jetzt die Einträge, damit der Termin nicht mehr ganztägig, sondern von 07.00 bis 07.15 ist und um 07.00 eine Erinnerung abgesetzt wird?

Danke für Deine Geduld und Deine Hilfe

Gruss und einen schönen Abend oder einen schön Samstag wünsche ich Dir

Theo
Antworten Top
#17
Moin Theo,

hier mal der nächste Schritt. Ich hab hier sicherheitshalber eine Bedingung drin, die bei Dir wahrscheinlich nicht passt. Wenn Du für die Abfallwirtschaft einen eigenen Kalender hast, ist das eher nicht nötig. Wenn da aber ein Kalender mit anderen Terminen genutzt wird, muss man die ja irgendwie auseinander halten, damit dann nicht alle von 7:00 bis 7:15 gehen Sad
Da müsstest Du mal nachschauen, was da zur eindeutigen Identifizierung nutzbar ist, z.B. den Betreff oder den Absender oder …

Code:
Private Sub CalendarItems()
'Variablendeklarationen
Dim objApp As Outlook.Application
Dim objNS As NameSpace, objCalendar As MAPIFolder
Dim objItem As AppointmentItem
Dim strSubject$
Dim dOccuringDate As Date
'Objekte setzen
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objCalendar = objNS.Folders("...MeinPC...").Folders("Kalender")
Set objCalendar = objCalendar.Folders("...Abfall...")
'Schleife ueber alle Kalendereintraege
'Muss eventuell differenziert werden
For Each objItem In objCalendar.Items
  'Mit dem Kalendereintrag
  With objItem
    'Aenderung von Eigenschaften des Kalendereintrages nur
    'wenn der grossgeschriebene Betreff ABFALL enthaelt
    If InStr(1, UCase(.Subject), "ABFALL") > 0 Then
      dOccuringDate = Format(.Start, "Short Date")
      .AllDayEvent = False
      .Start = dOccuringDate & " 7:00:00 AM"
      .End = dOccuringDate & " 7:15:00 AM" 'PM fuer zweite Tageshaelfte
      .ReminderSet = True
      .ReminderMinutesBeforeStart = 0
    'Ende wenn der grossgeschriebene Betreff ABFALL enthaelt
    End If
    'Ausgabe von Eigenschaften des Kalendereintrages im Direktfenster
    Debug.Print _
    "Titel: " & .Subject & vbCrLf & _
    "Am:    " & .Start & " - " & .End & vbCrLf & _
    "Dauer: " & IIf(.Duration = 1440, "Ganzt?gig", .Duration & " Minuten") & vbLf & _
    "Erinnerung: " & .ReminderSet & vbLf & _
    "Erinnerungszeit: " & .ReminderMinutesBeforeStart
  'Ende Mit dem Kalendereintrag
  End With
'Ende Schleife ueber alle Kalendereintraege
Next
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#18
Hallo André

danke für Deine Antwort. Alle Datensätze sind in einem eigenen Kalender "Abfall".

Ich habe Deinen Skript wie folgt abgeändert:


Code:
Private Sub CalendarItems()
'Variablendeklarationen
Dim objApp As Outlook.Application
Dim objNS As NameSpace, objCalendar As MAPIFolder
Dim objItem As AppointmentItem
Dim strSubject$
Dim dOccuringDate As Date
'Objekte setzen
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objCalendar = objNS.Folders("MeinPC").Folders("Kalender")
Set objCalendar = objCalendar.Folders("Abfallkalender")
'Schleife ueber alle Kalendereintraege
'Muss eventuell differenziert werden
For Each objItem In objCalendar.Items
  'Mit dem Kalendereintrag
  With objItem
    'Aenderung von Eigenschaften des Kalendereintrages nur
    'wenn der grossgeschriebene Betreff ABFALL enthaelt
   [color=#ff3333] 'If InStr(1, UCase(.Subject), "ABFALL") > 0 Then[/color]
[color=#ff3333]   [color=#333333]  [b] .dOccuringDate = Format(.Start, "Short Date")[/b][/color][/color]
      .AllDayEvent = False
      .Start = dOccuringDate & " 7:00:00 AM"
      .End = dOccuringDate & " 7:15:00 AM" 'PM fuer zweite Tageshaelfte
      .ReminderSet = True
      .ReminderMinutesBeforeStart = 0
    'Ende wenn der grossgeschriebene Betreff ABFALL enthaelt
 [color=#ff3333]   'End If[/color]
    'Ausgabe von Eigenschaften des Kalendereintrages im Direktfenster
    Debug.Print _
    "Titel: " & .Subject & vbCrLf & _
    "Am:    " & .Start & " - " & .End & vbCrLf & _
    "Dauer: " & IIf(.Duration = 1440, "Ganzt?gig", .Duration & " Minuten") & vbLf & _
    "Erinnerung: " & .ReminderSet & vbLf & _
    "Erinnerungszeit: " & .ReminderMinutesBeforeStart
  'Ende Mit dem Kalendereintrag
  End With
'Ende Schleife ueber alle Kalendereintraege
Next
End Sub


Ich erhalte bei
     .dOccuringDate = Format(.Start, "Short Date")

Folgenden Fehler:
[
Bild bitte so als Datei hochladen: Klick mich!
]
[color=#ff3333][color=#333333]Was ist falsch?


Gruss

Theo
Antworten Top
#19
Hi Theo

Schau ich mir nachher mal an, gibt gleich Kaffee Smile und ich bin nur am Smartphone. schreib mal bitte über die Fehlerzeile Msgbox Format(....) und schau, ob es da auch einen Fehler gibt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#20
Hallo André

MsgBox Format(vbOKOnly)
bringt

[
Bild bitte so als Datei hochladen: Klick mich!
]
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste