Avatar billede mal Nybegynder
05. oktober 2010 - 19:19 Der er 30 kommentarer og
1 løsning

Outlook VBA ... Send data til excel

Hej

Jeg vil gerne kunne eksportere min indboks indhold til excel

Jeg har fundet følgende VBA kode på:

http://www.mrexcel.com/forum/showthread.php?t=63932

Men den fortæller mig at der er en fejl i linjen:

Compile error: Sub or funktion not defined ...
Cells(i, 1) = MItem.SenderName

Hvad er der galt og hvordan retter jeg det?

Sub Getinboxdetails()
Dim OutApp As Object    'Outlook.Application
Dim NmSpace As Object  'Outlook.NameSpace
Dim Inbox As Object    'Outlook.MAPIFolder
Dim MItem As Object    'Outlook.MailItem
Dim i As Long
Dim x As Integer
Dim Feedb As String
Set OutApp = CreateObject("Outlook.Application")
Set NmSpace = OutApp.GetNamespace("MAPI")
Set Inbox = NmSpace.GetDefaultFolder(6)
i = 1
'// In case of UNDELIVERABLES
On Error Resume Next
For Each MItem In Inbox.Items
  DoEvents
  '// Note Only looking for Items within THIS MONTH!
  If Month(MItem.Subject) = Month(Now) Then
      'If Err Then Err.Clear: GoTo N
      i = i + 1
      Cells(i, 1) = MItem.SenderName
      Cells(i, 2) = MItem.Subject
      Cells(i, 3) = MItem.UserProperties("IncidentType").Value
      Cells(i, 4) = MItem.UserProperties("IncidentDescription").Value
 
        End If
N:  Next MItem
Set MItem = Nothing
Set Inbox = Nothing
Set NmSpace = Nothing
Set OutApp = Nothing
Set Attach = Nothing
End Sub
Avatar billede supertekst Ekspert
05. oktober 2010 - 23:42 #1
Er der sat reference til Outlook?
Avatar billede supertekst Ekspert
06. oktober 2010 - 09:39 #2
PS: I VBA-vinduet / Tools / References / find Microsoft Outlook.. og sæt x - Ok & Gem
Avatar billede supertekst Ekspert
06. oktober 2010 - 23:08 #3
Noget nyt?
Avatar billede mal Nybegynder
08. oktober 2010 - 11:14 #4
Hej supertekst

Undskyld jeg gørt har fået set på det nu ....

Er der sat reference til Outlook?

Ikke forstået

I VBA-vinduet / Tools / References / find Microsoft Outlook.. og sæt x - Ok & Gem

Microsoft outlook 11 objekt library har x
(Jeg kan ikke finde andre outlooks)

Noget nyt?

Nej, og endnu engang undskyld at jeg først fik set på det nu.
Avatar billede supertekst Ekspert
08. oktober 2010 - 11:31 #5
Hej mal

Ok - så meget haster det jo heller ikke.
Hvis der er flueben i Outlook - så er det jo i orden.

Jeg har ikke prøvet koden - men ved nærmere eftersyn tror jeg at det er fordi MItem ikke er defineret som Outlook.Mailitem, derfor kendes Sendername ikke


ref: Dim MItem As Object    'Outlook.MailItem
Avatar billede supertekst Ekspert
08. oktober 2010 - 13:17 #6
Har prøvet koden - den virker som den skal. MItem anvendes i for-sætningen - så "den kender sin plads" - så jeg nu.

Hvilke referencer er der ellers sat?
Avatar billede mal Nybegynder
08. oktober 2010 - 20:04 #7
Jeg prøver den lige
Avatar billede mal Nybegynder
08. oktober 2010 - 20:16 #8
Hmm .. det er det der med at svare uden at få læst det hele igennem.

Jeg har ikke sat nogle referencer overhovedet ...

Jeg forstår en smule VBA programmering i Excel ... men det her er for at sige det som det er ... ikke i min leaga ...

Ideen med det, var så at sige at løse det andet åbne spørgsmål som jeg har liggende ... hvor du har forsøgt at hjælpe.

Altså man kan vælge en mappe, og så sender outlook:

Afsender (mailadresse), Dato (Dato og kl.) , Svardato (Dato og kl./ingen), Svartype (videresend/besvar/ingen) fra samtlige mails i mappen til et excel regneark.

http://www.eksperten.dk/spm/915551

Jeg ved ikke om du kan fortælle mig hvad jeg skal sætte op for at få den til at køre ...
Avatar billede mal Nybegynder
08. oktober 2010 - 20:18 #9
Rettelse:

Jeg forstår en smule VBA programmering i Excel ... men det her er for at sige det som det er ... ikke i min leaga ...

Der menes:

Jeg forstår en smule VBA programmering i Excel ... men det her er for at sige det som det er ... så der det her ikke i min leaga ...
Avatar billede supertekst Ekspert
08. oktober 2010 - 23:04 #10
Ok - måske skulle vi prøve at få samlet stumperne - så lad os prøve at fortsætte, når det bliver muligt..
Avatar billede mal Nybegynder
19. oktober 2010 - 08:11 #11
@supertekst

Hvis det er mig vi venter på ... så er jeg ikke helt sikker på hvad jeg skal gøre !
Avatar billede supertekst Ekspert
19. oktober 2010 - 08:53 #12
Hvad er status med indeværende spørgsmål?

Så skal jeg se på 915551
Avatar billede mal Nybegynder
19. oktober 2010 - 21:14 #13
Status:

Jeg kan ikke få koden til at virke ...

Outlook
Jeg har deaktiveret Macrosikkerhed (midlertidigt)
Jeg har tilføjet koden i "module1" i mappen "Modules"
Jeg har sikret at der er x i Microsoft outlook 11 objekt library

Jeg vælger en tilfældig mappe og forsøger at starte koden fra værktøjslinjen eller via funktioner -> Makro -> Makroer ... -> Afspil ->

Men koden (Getinboxdetails) startes ikke ... den skriver (som jeg også skrev i første indlæg:

Compile error
Funktion or sub not define

Med hensyn til spørgsmål 915551 ... hvis du kan få det her spørgsmål til at virke ... hvor der sendes:

Afsender (mailadresse), Dato (Dato og kl.) , Svardato (Dato og kl./ingen), Svartype (videresend/besvar/ingen) til et regneark ... så vil jeg meget gerne acceptere begge spørgsmål som besvaret.
Avatar billede supertekst Ekspert
19. oktober 2010 - 21:30 #14
Ok - ser på det og vender tilbage..
Avatar billede supertekst Ekspert
20. oktober 2010 - 11:16 #15
Hvor ligger mappen i forhold til indbakke?

Evt send et skræmprint. @-adresse under profil.
Avatar billede mal Nybegynder
20. oktober 2010 - 12:24 #16
Jeg har vedhæftet et billede af Outlook her:

http://zeroup.dk/Vis/outlook38.jpg

(Jeg har, da dataen principielt er fortroligt valgt at anonymisere billedet)

Jeg har forsøgt at bruge VBA koden på forskellige mapper ... f.eks.:

mappen \indbakke\underlige mails ... eller funktionspostkassen xxx\ besvarede mails ... men samme fejl ...

Hvis det bare ser spørgsmål om at der skal stå noget bestemt ... så tilretter jeg gerne scriptet til hver mappe (altså sådan der er 8 VBA koder.
Avatar billede mal Nybegynder
20. oktober 2010 - 12:29 #17
Jeg har uploadet billedet igen ... nu i ordentlig kvalitet

http://www.gratisimage.dk/graphic/images/2010/October/20/D3A2_4CBEC448.jpg
Avatar billede supertekst Ekspert
20. oktober 2010 - 14:12 #18
Prøv at sende den samlede kode til mig - eller vis den her.

Når jeg ser på dit billede - så er der ikke noget umiddelbart at bemærke.
Avatar billede mal Nybegynder
20. oktober 2010 - 19:27 #19
Den samlede kode:

Sub Getinboxdetails()
Dim OutApp As Object    'Outlook.Application
Dim NmSpace As Object  'Outlook.NameSpace
Dim Inbox As Object    'Outlook.MAPIFolder
Dim MItem As Object    'Outlook.MailItem
Dim i As Long
Dim x As Integer
Dim Feedb As String
Set OutApp = CreateObject("Outlook.Application")
Set NmSpace = OutApp.GetNamespace("MAPI")
Set Inbox = NmSpace.GetDefaultFolder(6)
i = 1
'// In case of UNDELIVERABLES
On Error Resume Next
For Each MItem In Inbox.Items
  DoEvents
  '// Note Only looking for Items within THIS MONTH!
  If Month(MItem.Subject) = Month(Now) Then
      'If Err Then Err.Clear: GoTo N
      i = i + 1
      Cells(i, 1) = MItem.SenderName
      Cells(i, 2) = MItem.Subject
      Cells(i, 3) = MItem.UserProperties("IncidentType").Value
      Cells(i, 4) = MItem.UserProperties("IncidentDescription").Value
 
        End If
N:  Next MItem
Set MItem = Nothing
Set Inbox = Nothing
Set NmSpace = Nothing
Set OutApp = Nothing
Set Attach = Nothing
End Sub
Avatar billede supertekst Ekspert
20. oktober 2010 - 23:11 #20
Virker perfekt..
Avatar billede supertekst Ekspert
20. oktober 2010 - 23:16 #21
Der kommer ingen fejl - viser alle mails i indbakken..
Avatar billede supertekst Ekspert
20. oktober 2010 - 23:27 #22
Denne virker hos mig - kommer ikke videre...

Rem version 2 - skrevet i V/2007
Rem Reference sat til: Microsoft Outlook 12.0 Object Library - skal evt. justeres til 2003-versionsNr (11.0)
Rem Evt. til at forhindre "Et program forsøger..."
Rem www.contextmagic.com/express-clickyes/Free-version.htm
Rem ============================================================
Const mappenavn = "MAPPENAVN"  '<---------------- indsæt navn på mappen under indbakke!!!
Const startRæk = 2
Dim ræk As Integer, antalMails As Integer, mappen
Public Sub HentMails()
    sletPtIndhold
   
    antalMails = åbnOutlookMappe(mappenavn)
   
    ræk = startRæk
    traverserMappen antalMails

    Columns.AutoFit
End Sub
Private Sub sletPtIndhold()
    Range("A" & CStr(startRæk) & ":D65000").Select
    Selection.ClearContents
    Range("A" & CStr(startRæk)).Select
End Sub
Private Function åbnOutlookMappe(mappenavn)
Dim mailApp, nameSpace, aFold As MAPIFolder

    Set mailApp = CreateObject("Outlook.Application")
    Set nameSpace = mailApp.GetNamespace("MAPI")
    Set aFold = nameSpace.GetDefaultFolder(olFolderInbox)
   
    If mappenavn <> "" Then
        Set mappen = aFold.Folders(mappenavn)
    Else
        Set mappen = aFold
    End If
    åbnOutlookMappe = mappen.Items.Count
End Function
Private Sub traverserMappen(antalMails)
Dim afsender As String, modtaget As Date, besvaret As Date, besvarType As String
Dim mx As MailItem, handlinger As Outlook.Actions
    If antalMails > 0 Then
        Application.ScreenUpdating = False
   
        For m = 1 To antalMails
            Set mx = mappen.Items(m)
           
            afsender = mx.SenderEmailAddress
            modtaget = mx.ReceivedTime
           
            ActiveSheet.Range("A" & CStr(ræk)) = afsender
            ActiveSheet.Range("B" & CStr(ræk)) = modtaget
           
            ' besvaret mangler p.t.
            ' type besvarelse  mangler p.t.
            ræk = ræk + 1
        Next m
       
        Application.ScreenUpdating = True
    End If
End Sub
Avatar billede mal Nybegynder
21. oktober 2010 - 23:26 #23
Jeg skal nok selv finde en løsning på "besvaret" og "type" men koden går desværre stadig her:

Private Sub sletPtIndhold()
    Range("A" & CStr(startRæk) & ":D65000").Select
    Selection.ClearContents
    Range("A" & CStr(startRæk)).Select
End Sub


Jeg har udfyldt ... Const mappenavn = "MAPPENAVN"
med et mappenavnet "Underlige mails"

Jeg har prøvet både med excel startet og ikke startet ...

Med uanset hvilken løsning jeg bruger kommer følgende fejlkode:

"Compiler error:

Sub or funktion not define"
Avatar billede mal Nybegynder
22. oktober 2010 - 01:01 #24
og så i forståelig version

Jeg skal nok selv finde en løsning på "besvaret" og "type" men koden går desværre stadig ned her:

[i]Private Sub sletPtIndhold()
    Range("A" & CStr(startRæk) & ":D65000").Select
    Selection.ClearContents
    Range("A" & CStr(startRæk)).Select
End Sub8/i]

Jeg har udfyldt ... Const mappenavn = "MAPPENAVN"
med mappenavnet "Underlige mails" ... altså
Const mappenavn = "Underlige mails".

Jeg har prøvet både med excel startet og ikke startet ...

Med uanset hvilken løsning jeg bruger, kommer følgende fejlkode:

"Compiler error:

Sub or funktion not define"
Avatar billede supertekst Ekspert
22. oktober 2010 - 10:13 #25
Hvilken office-version anvender du?
Avatar billede supertekst Ekspert
22. oktober 2010 - 10:30 #26
En sidste mulighed, som jeg kan tilbyde, er at du sender Excel-filen med koden til mig.
Avatar billede mal Nybegynder
30. oktober 2010 - 11:59 #27
Jeg beklager jeg er lidt langsom til det her ...

Jeg anvender outlook 2003 / outlook 2007 (Jeg har prøvet det på 2 maskiner)

Excel ... du mener vel outlook?
Avatar billede supertekst Ekspert
30. oktober 2010 - 13:50 #28
Nej - min kode ligger i Excel...
Avatar billede supertekst Ekspert
30. oktober 2010 - 13:52 #29
Eller også skal du sætte reference til Excel, hvis din kode er i Outlook..
Avatar billede mal Nybegynder
30. oktober 2010 - 22:34 #30
Hmmm ... lykkes det ... også at forstå hinanden ...

Vil du lave et svar på den her og på

http://www.eksperten.dk/spm/915551

Så vil jeg hurtigst muligt få dem accepteret.

Mange tak.
Avatar billede supertekst Ekspert
30. oktober 2010 - 22:58 #31
Du får et svar på denne - 915551 lukker du selv..
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