Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Uhrzeit der gesendeten E-Mail

Uhrzeit der gesendeten E-Mail
Heiko
Hallo, Excel Experten,
keine Ahnung, ob das geht...
Ist es möglich, per VBA die Uhrzeit der letzen gesendeten E-Mail eines jeden Tages (mit Datum) z. B. des letzten Jahres zu bestimmen und die Daten in eine Excel Tabelle zu schreiben?
Von Hand würde es mich wahrscheinlich Tage kosten.
Im Archiv habe ich nichts gefunden...
Vielen Dank im Voraus,
Heiko
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
vielleicht so...
28.03.2010 19:37:00
Tino
Hallo,
teste mal diese Version.
Benötigt den Verweis auf Microsoft Outlook Object Library
Du wirst nach dem Ordner gefragt den Du auslesen möchtest.
Getestet unter xl2007
Option Explicit
'Benötigt den Verweis auf Microsoft Outlook Object Library 
Sub MailsImportieren()
Dim objOutlook As Outlook.Application
Dim objnSpace As Namespace
Dim objFolder As MAPIFolder
Dim LRow As Long
Dim nCount As Integer
Dim myAr() As Variant

Set objOutlook = New Outlook.Application
Set objnSpace = objOutlook.GetNamespace("MAPI")
Set objFolder = objnSpace.PickFolder ''' Dialog 
   

With Tabelle1 'Tabellennamen anpassen !!!!!!! 
   
   'Zellen leer machen für neue Daten 
   .Range("A2:B" & .Rows.Count).Clear
   
   'Überschrift 
   .Cells(1, 1) = "Datum"
   .Cells(1, 2) = "Betreff"
   .Range("A1:B1").Font.Bold = True
   
   
   With objFolder
        'Array Dimensionieren 
        Redim myAr(1 To .Items.Count, 1 To 2)
   
        'Mails aus Ordner lesen 
        For nCount = 1 To .Items.Count
                 LRow = LRow + 1
                 myAr(LRow, 1) = .Items(nCount).SentOn  'Datum 
                 myAr(LRow, 2) = .Items(nCount).Subject 'Betreff 
        Next nCount
   End With
   
   'Daten in Zellen schreiben 
   .Range("A2").Resize(LRow, 2) = myAr
   'Breite der Spalten anpassen und Sort 
   With .Columns("A:B")
    .EntireColumn.AutoFit
    .Sort Key1:=.Cells(1, 1), Order1:=xlDescending, Header:=xlYes
   End With
End With

End Sub
Gruß Tino
Anzeige
hier mit Filter von bis Datum...
28.03.2010 20:53:38
bis
Hallo,
in dieser Version brauchst du den Verweis 'Outlook Object Library' nicht zu setzen.
Option Explicit
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long

Public vonDatum As Date, bisDatum As Date

Sub MailsImportieren()
Dim objOutlook As Object, objnSpace As Object, objFolder As Object, objItems As Object
Dim LRow As Long
Dim nCount As Integer
Dim myAr() As Variant
Dim HwndExel As Long

vonDatum = DateSerial(Year(Date) - 1, 1, 1) 'Filter von Datum 
bisDatum = DateSerial(Year(Date) - 1, 12, 31) 'Filter bis Datum 

HwndExel = GetForegroundWindow

Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
Set objFolder = objnSpace.PickFolder ''' Dialog 

With Tabelle1 'Tabellennamen anpassen !!!!!!! 
   
   'Zellen leer machen für neue Daten 
   .Range("A2:B" & .Rows.Count).Clear
   
   'Überschrift 
   .Cells(1, 1) = "Datum"
   .Cells(1, 2) = "Betreff"
   .Range("A1:B1").Font.Bold = True
   
   With objFolder
        If .Items.Count > 0 Then
            
            Set objItems = .Items
            Set objItems = objItems.Restrict("[SentOn] >= '" & Format(vonDatum, "dd.mm.yyyy hh:mm") & "'" & _
                    "AND [SentOn] <= '" & Format(bisDatum, "dd.mm.yyyy hh:mm") & "'")
   
        
            'Array Dimensionieren 
            Redim myAr(1 To objItems.Count, 1 To 2)
            'Mails aus Ordner lesen 
            On Error Resume Next
            For nCount = 1 To objItems.Count
                     LRow = LRow + 1
                     myAr(LRow, 1) = objItems(nCount).SentOn  'Datum 
                     myAr(LRow, 2) = .Items(nCount).Subject 'Betreff 
            Next nCount
        End If
   End With
   
   If LRow > 0 Then
        'Daten in Zellen schreiben 
        .Range("A2").Resize(LRow, 2) = myAr
        'Breite der Spalten anpassen und Sort 
        With .Columns("A:B")
         .EntireColumn.AutoFit
         .Sort Key1:=.Cells(1, 1), Order1:=xlDescending, Header:=xlYes
        End With
   End If
End With

vonDatum = 0
bisDatum = 0

Set objOutlook = Nothing: Set objnSpace = Nothing
Set objFolder = Nothing: Set objItems = Nothing

SetForegroundWindow HwndExel

If LRow > 0 Then
    MsgBox "Daten gelesen", vbInformation + vbMsgBoxSetForeground, LRow & " E-Mails gefunden"
Else
    MsgBox "Daten gelesen", vbExclamation, "keine Daten gefunden"
End If

If Err.Number <> 0 Then
    MsgBox "Es sind Fehler aufgetreten!" & vbCr & vbCr & Err.Description, vbCritical + vbMsgBoxSetForeground
End If
End Sub
Gruß Tino
Anzeige
hier war noch ein Fehler...
29.03.2010 16:14:21
Tino
Hallo,
ändere
myAr(LRow, 2) = .Items(nCount).Subject 'Betreff
in
myAr(LRow, 2) = objItems(nCount).Subject 'Betreff
Gruß Tino
;
Anzeige
Anzeige

Infobox / Tutorial

Uhrzeit der gesendeten E-Mail in Excel anzeigen


Schritt-für-Schritt-Anleitung

Um die Uhrzeit und das Datum gesendeter E-Mails aus Outlook in eine Excel-Tabelle zu übertragen, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:
    • Rechtsklicke im Projekt-Explorer auf "VBAProject (dein Arbeitsbuch)".
    • Wähle Einfügen > Modul.
  3. Kopiere den folgenden VBA-Code in das Modul:
Option Explicit
Sub MailsImportieren()
    Dim objOutlook As Object
    Dim objnSpace As Object
    Dim objFolder As Object
    Dim objItems As Object
    Dim LRow As Long
    Dim nCount As Integer
    Dim myAr() As Variant

    ' Outlook-Anwendung erstellen
    Set objOutlook = CreateObject("Outlook.Application")
    Set objnSpace = objOutlook.GetNamespace("MAPI")
    Set objFolder = objnSpace.PickFolder

    With Tabelle1 ' Tabellennamen anpassen
        .Range("A2:B" & .Rows.Count).Clear ' Zellen leeren
        .Cells(1, 1) = "Datum"
        .Cells(1, 2) = "Betreff"
        .Range("A1:B1").Font.Bold = True

        If objFolder.Items.Count > 0 Then
            Set objItems = objFolder.Items
            ReDim myAr(1 To objItems.Count, 1 To 2)

            For nCount = 1 To objItems.Count
                LRow = LRow + 1
                myAr(LRow, 1) = objItems(nCount).SentOn ' Datum
                myAr(LRow, 2) = objItems(nCount).Subject ' Betreff
            Next nCount
        End If

        If LRow > 0 Then
            .Range("A2").Resize(LRow, 2) = myAr
            .Columns("A:B").AutoFit
        End If
    End With

    ' Aufräumen
    Set objOutlook = Nothing
    Set objnSpace = Nothing
    Set objFolder = Nothing
    Set objItems = Nothing
End Sub
  1. Führe das Makro aus:
    • Schließe den VBA-Editor und kehre zu Excel zurück.
    • Drücke ALT + F8, wähle MailsImportieren und klicke auf Ausführen.

Jetzt solltest du die Daten in der Excel-Tabelle sehen, die das Datum und den Betreff der gesendeten E-Mails anzeigen.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"

    • Überprüfe, ob du den Verweis auf die "Microsoft Outlook Object Library" gesetzt hast, falls du Outlook spezifische Objekte verwendest.
  • Fehler: Leere Tabelle

    • Stelle sicher, dass du den richtigen Ordner in Outlook ausgewählt hast, der tatsächlich gesendete E-Mails enthält.
  • Fehler: Zeitstempel nicht angezeigt

    • Stelle sicher, dass du das richtige Format für die Datum- und Uhrzeitangabe verwendest.

Alternative Methoden

Wenn du die Uhrzeit der gesendeten Mails ohne VBA ermitteln möchtest, kannst du auch die Outlook-Optionen verwenden, um das Datum und die Uhrzeit anzuzeigen. In Outlook kannst du die Ansicht so anpassen, dass die Uhrzeit gesendeter Mails angezeigt wird.

  1. Gehe zu Ansicht > Ansichtseinstellungen.
  2. Wähle Spalten und füge die Spalte für das Datum und die Uhrzeit hinzu.

Praktische Beispiele

Hier ist ein Beispiel, wie die Daten in Excel aussehen könnten:

Datum Betreff
01.01.2023 10:00 Neujahrsgrüße
15.01.2023 16:30 Projektupdate
28.02.2023 09:15 Einladung zum Meeting

Du kannst die Uhrzeit der Mail in Excel durch das Formatieren der Zelle weiter anpassen, um nur die Uhrzeit anzuzeigen.


Tipps für Profis

  • Nutze Filter in Excel, um nur E-Mails aus bestimmten Zeiträumen anzuzeigen, z.B. Outlook-Mails älter als 12 Monate anzeigen.
  • Verwende bedingte Formatierungen, um E-Mails nach Datum oder Uhrzeit optisch hervorzuheben.
  • Experimentiere mit dem VBA-Code, um zusätzliche Informationen wie den Absender oder Empfänger hinzuzufügen.

FAQ: Häufige Fragen

1. Wie kann ich die Uhrzeit bei gesendeten Mails anzeigen?
In Outlook kannst du die Ansicht anpassen, um die Uhrzeit in der Spalte für gesendete Mails anzuzeigen. Gehe zu Ansicht > Ansichtseinstellungen und füge die Uhrzeit-Spalte hinzu.

2. Kann ich E-Mails nach Datum filtern?
Ja, du kannst die gesendeten E-Mails in Outlook nach Datum filtern. Nutze die Suchfunktion oder die erweiterten Filteroptionen, um spezifische Zeiträume auszuwählen.

3. Welche Excel-Version benötige ich für VBA?
Der gegebene VBA-Code wurde unter Excel 2007 getestet, sollte aber auch in neueren Versionen funktionieren. Achte darauf, dass die Outlook Object Library korrekt referenziert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige