MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Outlook (Express), sonst. Mailprogramme
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 12.12.2017, 16:05   #1
Racefan1974
MOF User
MOF User
Traurig OL 2010 - Mit VBA alle Elemente eines Kalenders löschen

Hallo Forum-User,

der Bereich VBA-Programmierung in Outlook ist für mich Neuland.
Ich habe schon ein paar VBA-Skripte für Excel erstellt.

Ich möchte gerne per VBA folgendes erreichen:

Der Kalender "Geburtstag" soll ausgewählt werden.
Dort sollen alle Elemente gelöscht werden.

Wer kann mir eine Code dafür geben?

Ich danke für Eure Bemühungen.

DER RACEFAN
Racefan1974 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.12.2017, 09:27   #2
halweg
MOF Koryphäe
MOF Koryphäe
Standard

Ich tu mich schwer, für andere Code zu schreiben (muss ja getestet werden usw.), helfe aber gern:
Du brauchst die Auflistung des betroffenen Kalenders, z. B.
Code:

Set kalenderordner = Session.Folders(1).Folders("Geburtstage")
und eine Schleife zum Löschen
Code:

For Each kalendereintrag in kalenderordner.items
        kalendereintrag.delete
Next kalendereintrag
Mit deinen VBA-Kenntnissen ist der Rest sicher Routine, zum Glück hat VBA ja zahlreiche Autovervollständigungsfunktionen.

__________________

Windows 7, Windows 10, Office 2002, Office 2010
halweg ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.12.2017, 10:24   #3
Racefan1974
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo halweg,

vielen Dank für Deinen Tipp:

Ich habe das mal in nachfolgendem Code eingebaut. In Deiner Codezeile kommt weiterhin Laufzeitfehler Objekt nicht gefunden.
Ich habe einen Exchange-Server. Vielleicht passt der Code dazu nicht?
Vielleicht kannst Du nochmal schauen?
Danke und Grüße.


Sub TEST_Geburtstage_aktualisieren()
Dim Kalender As MAPIFolder
Dim Ordner As MAPIFolder
Dim OrdnerListe As Folders

Set OrdnerListe = Application.Session.Folders
Set Ordner = OrdnerListe.Item("Meier@Firma.com")
Set Kalender = Session.Folders(1).Folders("Geburtstag") ''' Hier kommt Laufzeitfehler Objekt nicht gefunden!!!
MsgBox Kalender
End Sub
Racefan1974 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.12.2017, 10:28   #4
Racefan1974
Threadstarter Threadstarter
MOF User
MOF User
Standard

Noch eine Hinweis:

Der Kalender Geburtstag hängt in der Struktur unterhalb von Kalender.
Ich vermute das man das man das in VBA auch so angeben muß.
Aber wie?
Racefan1974 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.12.2017, 10:36   #5
halweg
MOF Koryphäe
MOF Koryphäe
Standard

Die Variablen Ordner und Ordnerlist kannst du dir sparen.
Du brauchst ja nur einen bestimmten Ordner.
Bei mir läuft das wie gesagt über die Session.Folders Auflistung. Natürlich musst du dabei genau deine Namen und deine Struktur verwenden, also z. B.
set geburtstagskalender = Session.Folders(1).Folders("Kalender").Folders("Geburtstage")

Dafür musst du die Struktur deiner Ordner kennen.
Folders(1) meint die oberste pst-Datei bei mir, da musst du schauen, was bei dir ganz oben in der Ordnerhierarchie steht oder einen Namen statt der 1 angeben.

Und wahrscheinlich wird auch "Msgbox Kalender" nicht funktionieren, eher Kalender.name oder was auch immer die VBA da als Eigenschaft bietet.

__________________

Windows 7, Windows 10, Office 2002, Office 2010
halweg ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.12.2017, 10:48   #6
Racefan1974
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Halweg,

ich bin schon dank Deiner Hilfe weitergekommen. Unten der neue Gesamtcode. Auch msg hat funktioniert.
Leider löscht der nur die Hälfte der Kalenderitems.
Es kommt auch keine Fehlermeldung.
Ich mußte das mehrfach laufen lassen damit alle Einträge gelöscht werden. Jedes mal wurde nur die Hälfte gelöscht.
Hast Du da noch eine Idee?
Hast Du auch eine Code um neue Kalendereinträge in den gleiche Kalender aus einer CSV zu importieren?

Nochmals vielen Dank, hilft mir sehr!

Sub Geburtstage_aktualisieren()
Dim Ordner, Kalender As MAPIFolder
Dim OrdnerListe As Folders
Dim Kalendereintrag As Object

Set OrdnerListe = Application.Session.Folders
Set Ordner = OrdnerListe.Item("Meier@Firma.com")
Set Kalender = Session.Folders(1).Folders("Kalender").Folders("Geburtstag")
'MsgBox Kalender

''' Alle Kalendereinträge löschen'''
For Each Kalendereintrag In Kalender.Items
Kalendereintrag.Delete
Next Kalendereintrag
End Sub
Racefan1974 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.12.2017, 11:26   #7
halweg
MOF Koryphäe
MOF Koryphäe
Standard

Nach wie vor verstehe ich nicht, warum du Variablen/Objekte ("Ordner", "Ordnerlist") deklarierst, die du nicht verwendest.
Was die nicht gelöschten Einträge angeht, kann ich nur raten. Einerseits könnte es sein, dass du in deiner Kalenderansicht auch Einträge fremder Ordner siehst. Oder im Zusammenhang mit Exchange gibt es ein Schreibverbot. Oder die Einträge sind automatisch generiert.
Du müsstest also ermitteln, was die Gemeinsamkeit der nicht gelöschten Einträge ist.
Aber du kannst natürlich auch über das Direktfenster erst mal die Betreffs aller im betroffenen Kalenderorder enthaltenen Einträge anzeigen lassen und diese Liste prüfen.

__________________

Windows 7, Windows 10, Office 2002, Office 2010
halweg ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.12.2017, 17:17   #8
Racefan1974
Threadstarter Threadstarter
MOF User
MOF User
Standard

Habe die nicht benötigen Variablen entfernt.

Hast Du noch einen Tipp zum Import von Kalendereinträgen aus einer CSV-Datei?

Wäre super.

Danke!
Racefan1974 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.12.2017, 17:50   #9
halweg
MOF Koryphäe
MOF Koryphäe
Standard

Das habe ich noch nicht gemacht, da müsste ich genauso basteln wie du.

__________________

Windows 7, Windows 10, Office 2002, Office 2010
halweg ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.12.2017, 19:50   #10
Racefan1974
Threadstarter Threadstarter
MOF User
MOF User
Standard

OK und Danke!
Racefan1974 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.