vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
VBA: Excelzelle mit Outlook-Makro füllen 
Autor: V A T
Datum: 23.07.16 09:16

Hallo,

ich habe eine Idee und hoffe auf Eure Unterstützung bei der Umsetzung. Vorab gilt mein Dank allen, die zu helfen versuchen.

Die Idee: Ich würde gerne per VBA ein Outlook-Makro erstellen, welches den Betreff einer Mail nimmt und ihn in eine definierte Excel-Tabelle in Zelle A1 schreibt. Das Makro starte ich dann mit dem Outlook-regel-Assistent (das klappt alles, dazu brauche ich keine Hilfe).

Kann mir jemand ein Stück Outlook-VBA-Code erstellen, welches ich als Basis für meine Idee nehmen kann?

- Excel öffnen (unsichtbar)
- Tabelle x öffnen
- Zelle A1 füllen
- Tabelle x schließen (inkl. speichern)
- Excel schließen

Gruß und nochmals meinen Dank an die Runde!

V A T

Vielen Dank an alle in diesem Forum, welche mir Ihre Zeit schenken und sich mit meinen Problemen befassen! Ich weiß das ernsthaft zu schätzen und danke allen, die sich mit dieser Frage befassen herzlich!!!

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VBA: Excelzelle mit Outlook-Makro füllen 
Autor: Blackbox
Datum: 23.07.16 10:07

Hallo

das kann man so machen:

Private Const EMailAddresse As String = "TestEmail@T-Online.de"
Private Const S_OK As Long = 0
 
'Es ist ein Verweis auf Microsoft Excel Object Library erforderlich
'Errors:
' 0 = Success
' -1 Excel Object nicht instanzierbar
' -2 Datei nicht gefunden
' -3 Outlook Postfach existiert in der angegebenen Domäin nicht
Public Function WriteEMailSubjectToExcel(ByVal sFile As String, _
                                    ByVal sTable As String, _
                                    ByVal sPostFach As String) As Long
   Dim oExl As Excel.Application
   Dim oWrk As Excel.Workbook
   Dim oNs As Outlook.NameSpace
   Dim oFol As Outlook.Folder
   Dim oMail As Outlook.MailItem
   Dim nRow As Long
 
   'Prüfen ob eine Instanz von Excel erzeugt werden kann
   Set oExl = CreateObject("Excel.Application")
   If ObjPtr(oExel) = 0 Then
       WriteEMailSubjectToExcel = -1
       Exit Function
   End If
   'Datei öffnen
   If Dir(sFile) = "" Then
       Set oExl = Nothing
       WriteEMailSubjectToExcel = -2
       Exit Function
   End If
   Set oExl.Visible = False
   Set oWrk = oExl.Workbooks.Open(sFile)
   oWrk.Sheets(sTable).Select
 
   'Outlook
   Set oNs = Application.GetNamespace("MAPI")
   Set oFol = oNs.Folders(EMailAddresse).Folders(sPostFach)
   If ObjPtr(oFol) = 0 Then
       WriteEMailSubjectToExcel = -3
       oWrk.Close
       oExl.Quit
       Set oExl = Nothing
   End If
 
   For Each oMail In oFol.Items
       nRow = nRow + 1
       oWrk.ActiveSheet.Cells(nRow, 1).Value = oMail.Subject
       oWrk.ActiveSheet.Cells(nRow, 2).Value = oMail.Sender.Name
   Next
 
   oWrk.Save
   oWrk.Close
   oExl.Quit
   Set oExl = Nothing
   Set oNs = Nothing
 
   WriteEMailSubjectToExcel = S_OK
End Function
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel