Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
960to964
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
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Outlook <-> Excel
18.03.2008 11:53:00
Ackermann
Hallo liebe Gemeinde,
ich möchte gerne aus Outlook heraus Mails kopieren und diese dann in eine Excel - Tabelle bringen, kopiert werden soll nur der Betreff, der Absender und das Datum. Wenn ich die Daten aus Outlook einfach exportiere fehlt das Datum. Bisher ist es so gelöst dass man die Mails markieren muss und dann in die Zwischenablage speichert. Dies würde ich gern via Skript lösen, wenn möglich sollte dabei gleich der gewünschte Zeitraum ausgewählt werden können (das aber nur als Bonus =)
Grüße und danke für eure Anregungen
Martin

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook <-> Excel
18.03.2008 12:09:00
Tino
Hallo,
geht’s hiermit.

Sub MailinfoLesen()
Dim objOutlook As Object
Dim objnSpace As Object
Dim objFolder As Object
Dim a As Long
Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
Set objFolder = objnSpace.folders("Persönliche Ordner").folders("Posteingang")
Application.ScreenUpdating = False
Range("a:c").ClearContents
For a = 1 To objFolder.items.Count
Cells(a, 1) = objFolder.items(a).SenderName 'Absender
Cells(a, 2) = objFolder.items(a).Subject 'Betreff
Cells(a, 3) = objFolder.items(a).CreationTime 'Datum
'weitere entsprechend erweitern ...
Next a
Application.ScreenUpdating = True
Set objFolder = Nothing
Set objnSpace = Nothing
Set objOutlook = Nothing
End Sub


Gruß
Tino

Anzeige
AW: Outlook <-> Excel
18.03.2008 12:45:54
Ackermann
nennt ihn Gott ;)
funktioniert genau so wie ich mir das vorgstellt habe.
DANKE
hätte aber jetzt eine daraus resultierende Frage:
Kann man die Sicherheitsabfrage für den Mail Zugriff umgehen?
Also NUR für diese Anwendung, da fast alle Mails vertraulich sind wäre ein permanent gewährter Zugriff nicht so gut...

AW: Outlook <-> Excel
18.03.2008 13:04:00
Ackermann
Ach ja und mir ist eben noch etwas aufgefallen, ich muss noch einen Unterordner aufrufen, also
Persönliche Ordner/Posteingang/Wichtig
und einfach nochmal .folders("Wichtig") hat leider nicht funktioniert.

AW: Outlook <-> Excel
18.03.2008 13:45:13
Tino
Hallo,

Sub MailinfoLesen()
Dim objOutlook As Object
Dim objnSpace As Object
Dim objFolder As Object
Dim a As Long
Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
Set objFolder = objnSpace.folders("Persönliche Ordner").folders("Posteingang")
Set objFolder = objFolder.folders("Wichtig")
Application.ScreenUpdating = False
Range("a:c").ClearContents
For a = 1 To objFolder.items.Count
Cells(a, 1) = objFolder.items(a).SenderName 'Absender
Cells(a, 2) = objFolder.items(a).Subject 'Betreff
Cells(a, 3) = objFolder.items(a).CreationTime 'Datum
'weitere entsprechend erweitern ...
Next a
Application.ScreenUpdating = True
Set objFolder = Nothing
Set objnSpace = Nothing
Set objOutlook = Nothing
End Sub


Gruß
Tino

Anzeige
AW: Outlook <-> Excel
18.03.2008 13:59:00
Ackermann
hi sry das mir meine probleme immer so teilweise einfallen =)
aber mit
Cells(a, 1) = objFolder.Items(a).Senderfrom 'Absender
wird der benutzer aufgelistet der die mail verschickt hat, ich brauche aber aber das was er im Feld "Von" eingetragen hat, also
Cells(a, 1) = objFolder.Items(a).Sender"Von"
danke für alles

AW: Outlook <-> Excel
18.03.2008 14:06:00
Tino
Hallo,
Von ist doch der Absender? oder nicht?
Oder meinst du An
Cells(a, 1) = objFolder.Items(a).To
Gruß
Tino

Anzeige
AW: Outlook <-> Excel
18.03.2008 14:11:00
Ackermann
Nein, also das ist so:
wir arbeiten hier in verschiedenen Abteilungen und wenn jemand aus einer Abteilung etwas verschickt schreibt in "Von" die Abteilung und dann steht da max mustermann im auftrag von musterabteilung.
SenderName schreibt dann Max Mustermann ich brauche aber Musterabteilung.

AW: Outlook <-> Excel
18.03.2008 14:39:14
Tino
Hallo,
hierzu müsste ich mir ein Exchange-Postfach einrichten.
Aber du kannst ja selbst mal schauen welche Optionen es gibt.
Öffne Outlook,
Drücke Alt+F11,
drücke F2 und kommst in den Opjektkatalog.
Gib in die Suche
SenderName ein,
hier kannst du dir weitere Elemente raussuchen.
Vielleicht findest du ja etwas Passendes.
Userbild
Gruß
Tino

Anzeige
AW: Outlook <-> Excel
18.03.2008 15:04:00
Ackermann
okay vielen dank, es gibt zwar nix derartiges aber, jeder in der relevanten abteilung muss diese auch im cc erwähnen das kann ich ja mit .cc ansteuern.
Jedoch gilt das nicht für alle abteilungen wodurch ein Fehler entsteht wenn des cc-feld leer ist, also meine hoffentlich letzte frage: wie kann ich diesen fehler umgehen?

AW: Outlook <-> Excel
18.03.2008 15:11:35
Ackermann
Ich habe das Problem gelöst mit:

If objFolder.items(a).CC = "" Then
Cells(a, 1) = "Füllung"
Cells(a, 2) = objFolder.items(a).Subject 'Betreff
Cells(a, 3) = objFolder.items(a).creationtime 'Datum
Else
Cells(a, 1) = objFolder.items(a).CC 'absender
Cells(a, 2) = objFolder.items(a).Subject 'Betreff
Cells(a, 3) = objFolder.items(a).creationtime 'Datum
End If


aber nach einer weile, bricht er wegen Laufzeitfehler "438" ab, wenn ich auf Debuggen gehe ist die If - Abfrage gelb markiert, woran kann das liegen bzw. wie könnte ich das Problem beheben?

Anzeige
AW: Outlook <-> Excel
18.03.2008 15:19:00
Tino
Hallo,
oder
On Error Resume Next
Cells(a, 1) = objFolder.items(a).CC
On Error GoTo 0
Guß
Tino

AW: Outlook <-> Excel
18.03.2008 15:24:00
Ackermann
also ich hab mir das jetzt noch ein bisschen angeschaut, in dieser schleife wird a immer nur bis 80 gezählt obwohl über 7k mails im postfach sind. Als Fehlerhafte Zeile wird dann immer die erste Zeile nach dem For-"Kopf" markiert also bei mir die IF - Zeile, aber wenn diese auskommentiert ist die Zeile
Cells(a, 1) = objFolder.items(a).CC 'CC
also, ist das a kaputt?

AW: Outlook <-> Excel
18.03.2008 16:04:00
Tino
Hallo,
etwas umständlich, setze bei der If einen Haltepunkt und gehe im Einzelschritt Taste F8.
Vielleicht kannst du erkennen warum es nicht funzt.
oder gib mir mal deinen jetzigen Code und ich teste mal bei mir.
Gruß
Tino

Anzeige
AW: Outlook <-> Excel
18.03.2008 16:27:12
Ackermann
also ich hab die Ursache rausgefunden, ich hatte mal wieder nicht richtig hingeschaut, die 81ste Mail ist eine Besprechungsanfrage, und deswegen (vermute ich) kommt dieser Fehler da die methode .cc nicht für meetingitems definiert ist, entsteht der fehler, weisst du wie man abfragen kann, welcher klasse das ausgewählte "item" angehört?
p.s. mit messageclass funzt das net, weil da auch drinne steht ob es ein antwort oder anfrage ist und ob zugesagt oder abgelehnt wurde, und da müsste ich zuviele fälle einbauen
und hier noch mein bisheriger code

Dim objOutlook As Object
Dim objnSpace As Object
Dim objFolder As Object
Dim a As Long
Sub MailinfoLesen()
Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
Set objFolder = objnSpace.folders("Postfach - Musterabteilung").folders("Posteingang")
Set objFolder = objFolder.folders("Historie")
Application.ScreenUpdating = False
Range("a:c").ClearContents
'MsgBox objFolder.items(81).messageclass
For a = 1 To objFolder.Item.count
If objFolder.items(a).CC = "" Then
Cells(a, 1) = "Füllung"
Cells(a, 2) = objFolder.items(a).Subject 'Betreff
Cells(a, 3) = objFolder.items(a).creationtime 'Datum
Else
Cells(a, 1) = objFolder.items(a).CC 'CC
Cells(a, 2) = objFolder.items(a).Subject 'Betreff
Cells(a, 3) = objFolder.items(a).creationtime 'Datum
End If
'weitere entsprechend erweitern ...
Next a
Application.ScreenUpdating = True
Set objFolder = Nothing
Set objnSpace = Nothing
Set objOutlook = Nothing
End Sub


Anzeige
AW: Outlook <-> Excel
18.03.2008 16:53:41
Tino
Hallo,
so müsste es gehen mit der abfrage.
Mit objFolder.Items(a).Class = 43 ,
weis aber nicht ob die Nummer überall gleich ist.
If objFolder.Items(a).CC = "" And objFolder.Items(a).Class = 43 Then
Cells(a, 1) = "Füllung"
Cells(a, 2) = objFolder.Items(a).Subject 'Betreff
Cells(a, 3) = objFolder.Items(a).creationtime 'Datum
ElseIf objFolder.Items(a).Class = 43 Then
Cells(a, 1) = objFolder.Items(a).CC 'CC
Cells(a, 2) = objFolder.Items(a).Subject 'Betreff
Cells(a, 3) = objFolder.Items(a).creationtime 'Datum
End If
Gruß
Tino

Anzeige
AW: Outlook <-> Excel
18.03.2008 17:05:00
Ackermann
ja das hab ich auch schon probiert, aber sie ist nicht immer gleich, weisst du ob bzw. wie man eine variable auf eine bestimmte anzahl von zeichen kürzen kann?
dann könnte ich eine variable mit der MessageClass belegen und diese dann runter kürzen bis maximal noch "IPM.Schedule.Meeting" da steht, dann kann man diese variable vergleichen... usw.

AW: Outlook <-> Excel
18.03.2008 17:23:38
Tino
Hallo,
brauchen nicht kürzen, mit InStr kann man dies prüfen, ist der Text dabei ist InStr > 0
Bsp:

Text = "IPM.Schedule.Meeting"
If InStr("test IPM.Schedule.Meeting test", Text) > 0 Then MsgBox "ist dabei"


Gruß
Tino

Anzeige
GELÖST/DANKE
18.03.2008 17:37:16
Ackermann
cool, danke damit funktionierts, und mein programm ist jetzt komplett.
fettes DANKESCHÖN und hier noch eine blume für dich @-}-- xD

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige