Avatar billede pirlo Nybegynder
01. august 2011 - 17:14 Der er 9 kommentarer

optælling af mails i Outlook

Hej


Kan man opsætte Outlook således, at programmet selv kan tælle hvor mange indkomne mails som er modtaget pr. dag?
Avatar billede supertekst Ekspert
01. august 2011 - 17:55 #1
Tvivler på at Outlook selv kan tælle - men

man kunne konstruere en løsning, der var baseret på en VBA-kode i Excel, der kunne generere en oversigt.
Avatar billede supertekst Ekspert
01. august 2011 - 17:58 #2
og så velkommen til Eksperten..
Avatar billede pirlo Nybegynder
01. august 2011 - 19:35 #3
Ok. Det lyder interessant. Er det noget du
kan vise mig hvordan jeg laver eller er det en længere proces?  Tak for velkomsten:-)
Avatar billede supertekst Ekspert
01. august 2011 - 23:21 #4
Vender tilbage..
Avatar billede supertekst Ekspert
02. august 2011 - 09:12 #5
Rem Koden anbringes under Ark - højreklik / vis programkode /
Rem Reference sættes til Microsoft Outlook xx Object Library under Tools / References
Dim sidsteRæk As Long
Public Sub optælAntalMailPrDato()
Dim antalMails As Integer
    sidsteRæk = ActiveCell.SpecialCells(xlLastCell).Row
   
    antalMails = åbnOutlookMappe(afold)
    placerEfterDato antalMails, afold
End Sub
Private Function åbnOutlookMappe(afold)
Dim mailApp, Namespace

    Set mailApp = CreateObject("Outlook.Application")
    Set Namespace = mailApp.GetNamespace("MAPI")
    Set afold = Namespace.GetDefaultFolder(olFolderInbox)
   
    åbnOutlookMappe = afold.Items.Count
End Function
Private Sub placerEfterDato(antalMails As Integer, afold)
Dim mx As MailItem, modtagetDen As Date, dRæk As Long
    If antalMails > 0 Then
   
        Application.ScreenUpdating = False
        For m = 1 To antalMails
            Set mx = afold.Items(m)
           
            modtagetDen = Format(mx.ReceivedTime, "dd-mm-yy")
Rem findes dato i kolonne A
            dRæk = findesDato("A2:A" & sidsteRæk, modtagetDen)
            If dRæk = 0 Then
                sidsteRæk = sidsteRæk + 1
                Range("A" & sidsteRæk) = modtagetDen
                Range("B" & sidsteRæk) = 1
            Else
                Range("B" & dRæk) = Range("B" & dRæk) + 1
            End If
        Next m
    End If
    Application.ScreenUpdating = True
   
    Columns.AutoFit
End Sub
Private Function findesDato(område, id)
    With ActiveWorkbook.Sheets("Ark1").Range(område)
        Set c = .Find(id, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            findesDato = c.Row
        Else
            findesDato = 0
        End If
    End With
End Function
Avatar billede pirlo Nybegynder
03. august 2011 - 11:06 #6
Tusind tak for koden:)


Jeg er dog ikke helt sikker på hvordan koden skal sættes ind i outlook og exel i praksis.

Kan du udbyde det så det er mere forståeligt for en dødelig :-)

Mange tak for din hjælp!
Avatar billede supertekst Ekspert
03. august 2011 - 11:14 #7
Selv tak.

Koden skal indsættes i Excel og der skal herfra sættes en reference til Outlook - men det nemmeste vil være at jeg sende min Excefil til dig. Hvilken version af Excel anvender du?

Send en mail - @-adresse under min profil.
Avatar billede pirlo Nybegynder
04. august 2011 - 12:47 #8
Jeg har sendt dig en mail :-)
Avatar billede thjv1mkil Nybegynder
14. oktober 2013 - 15:34 #9
Hej,

Jeg har samme udfordring - og vil gerne have talt op på antal mails i en postkasse - men kan ikke få det til at virke.
Når scriptet afvikles via F5 og makroen kommer der en meddelelse om:
Type mismatch - og herefter 3 rækker i regnearket - en dato - og tallet 1 i en anden kolonne.

Jeg bruger excel 2007 - og VBA 6.5
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester