Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1024to1028
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
Inhaltsverzeichnis

Mails auslesen

Mails auslesen
18.11.2008 19:10:00
Markus
Hallo zusammen,
im Archiv habe ich folgenden Code gefunden (stammt von Tino - in dem Beitrag auch als "Gott" bezeichnet :-) ).

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
Cells(a, 4) = objFolder.Items(a).Body 'Inhalt
'weitere entsprechend erweitern ...
Next a
Application.ScreenUpdating = True
Set objFolder = Nothing
Set objnSpace = Nothing
Set objOutlook = Nothing
End Sub


Das Auslesen des Inhaltes habe ich jetzt noch eingefügt. Meine Frage wäre, kann man auch nur bestimmte Daten nach Excel kopieren. In den Mails, die ich bekomme stehen in einer Aufstellung in zwei Zeilen:
Name: "Text"
Wert : "Zahl oder Text"
Derzeit kopiere ich ja den gesamten Inhalt nach Ecxel und suche dann dort. Das ist irgendwie eine dumme Arbeit, zumal der Text ja in Ecxel ziemlich unübersichtlich dargestellt wird.
Wenn das gehen würde, kann man auch nur die Mails auslesen, die diese beiden Begriffe haben. Ich bekomme ja auch noch andere Mails auf der Arbeit - auch einige private :-) - die natürlich wenn möglich erst gar nicht nach Excel kopiert werden sollen?
Übrigens seid Ihr das selbst schuld. Seit dem ich diesem Forum verfallen bin (es ist eine richtige Sucht geworden im Archiv zu stöbern) kommen einem auch Ideen, an die man früher keine Sekunde verschwendet hat.
Danke!
Viele Grüße
Markus

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mails auslesen
18.11.2008 19:45:00
Roland
Hallo Markus,
versuchs mal so:
Option Explicit

Sub MailinfoLesen()
Dim objOutlook As Object
Dim objnSpace As Object
Dim objFolder As Object
Dim a As Long
Dim such As String
such = InputBox("Bitte Suchbegriff eingeben")
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
If InStr(CStr(objFolder.Items(a).Body), such) > 0 Then
Cells(a, 1) = objFolder.Items(a).SenderName 'Absender
Cells(a, 2) = objFolder.Items(a).Subject 'Betreff
Cells(a, 3) = objFolder.Items(a).CreationTime 'Datum
Cells(a, 4) = objFolder.Items(a).Body 'Inhalt
'weitere entsprechend erweitern ...
End If
Next a
Application.ScreenUpdating = True
Set objFolder = Nothing
Set objnSpace = Nothing
Set objOutlook = Nothing
End Sub


Gruß
Roland Hochhäuser

Anzeige
AW: Mails auslesen
18.11.2008 19:50:09
Roland
nein, besser so, sonst gibts Lücken in der Tabelle:

Sub MailinfoLesen()
Dim objOutlook As Object
Dim objnSpace As Object
Dim objFolder As Object
Dim a As Long, b As Long
Dim such As String
such = InputBox("Bitte Suchbegriff eingeben")
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: b = 1
For a = 1 To objFolder.Items.Count
If InStr(CStr(objFolder.Items(a).Body), such) > 0 Then
Cells(b, 1) = objFolder.Items(a).SenderName 'Absender
Cells(b, 2) = objFolder.Items(a).Subject 'Betreff
Cells(b, 3) = objFolder.Items(a).CreationTime 'Datum
Cells(b, 4) = objFolder.Items(a).Body 'Inhalt
'weitere entsprechend erweitern ...
b = b + 1
End If
Next a
Application.ScreenUpdating = True
Set objFolder = Nothing
Set objnSpace = Nothing
Set objOutlook = Nothing
End Sub


Anzeige
AW: Mails auslesen
18.11.2008 19:57:57
Markus
Hallo Roland,
habe es schon ausprobiert. Das ist doch eine echt starke Verbesserung.
Kannst Du mir auch sagen, wie ich aus dem gesamten Mailinhalt (Spalte D) den Namen in Spalte E und die Werte in Spalte F einlesen kann? Das wäre dann das Maximum.
Ich sage schon einmal danke!
AW: Mails auslesen
18.11.2008 20:27:00
Roland
Hallo Markus,
du kannst höchstens in der Schleife noch
Cells(b, 5) = such
schreiben, dann weisst du, wonach du in Spalte D gesucht hast. Der Rest geht nur manuell.
Gruß
Roland Hochhäuser
AW: Mails auslesen
19.11.2008 07:13:00
markus
Guten Morgen,
ich hatte gestern Abend schon ausgemacht. Kannst Du mir denn sagen, wie man das VBA-mässig am besten anstellt? Mir fällt spontan nur die normale "Suchfunktion = Strg + F" ein.
Viele Grüße
Markus
Anzeige
AW: Mails auslesen
19.11.2008 16:00:20
Roland
Hallo Markus,
und ich erst heute wieder angemacht ;-)
Zum Thema: wenn die zu durchsuchenden Mails eine einheitliche Struktur haben, bietet es sich an, objFolder.Items(a).Body) als String zu deklarieren und von dort einen weiteren String zu extrahieren, den du dann in die entsprechende Spalte schreibst. Schau dir dazu mal die Hilfe zu Instr, Left$, Mid$, Right$ und len an.
Gruß
Roland Hochhäuser
AW: Mails auslesen
19.11.2008 17:43:00
Markus
Hallo Roland, hallo zusammen,
davon habe ich keine Ahnung. Allerdings bin ich heute im Laufe des Tages auf folgende Datei gestoßen, die wohl genau das abbildet, was ich suche.
https://www.herber.de/bbs/user/56958.xls
Wenn ich aber den Button im zweiten Reiter anklicke, dann bekomme ich einen Laufzeitfehler (....objekt wurde nicht nicht gefunden).
Was mache ich hier wieder falsch? :-(
Viele Grüße
Markus
Anzeige
AW: Mails auslesen
22.11.2008 13:25:35
Markus
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige