Avatar billede Slettet bruger
02. maj 2012 - 16:53 Der er 10 kommentarer og
1 løsning

Træk data fra outlook til excel

Hejsa

Jeg får dagligt email med indeholdt data, som jeg gerne vil have importeret over i EXCEL.

Hvordan gør man dette? Skal siges jeg ingen forstand har på VBA som sådan, men går ud fra det er denne måde man gør det på.

Et eksempel på data kunne ligne:

"Lan","000000000002","001DANKORT)","120416","000","1","DKK","1,00"

Denne data vil jeg gerne automatisk hive fra en email over i excel ark

Hvordan kan dette lade sig gøre?
Avatar billede supertekst Ekspert
02. maj 2012 - 23:29 #1
Hvor er de nævnte data anført - i "subject" eller "body" - eller?
Avatar billede Slettet bruger
03. maj 2012 - 08:44 #2
De står i body :) Der er nemlig mange flere linier end den jeg har skrevet op :)
Avatar billede supertekst Ekspert
03. maj 2012 - 09:04 #3
Der skal noget VBA til..
Avatar billede Slettet bruger
03. maj 2012 - 09:13 #4
Jep :D Det tænkte jeg nok - har du et forslag på noget kode?

Jeg havde tænkt på det er fx.

Sub GetFromInbox()

    Dim olApp As Outlook.Application
    Dim olNs As NameSpace
    Dim Fldr As MAPIFolder
    Dim olMail As Variant
    Dim i As Integer

    Set olApp = New Outlook.Application
    Set olNs = olApp.GetNamespace("MAPI")
    Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
    i = 1

    For Each olMail In Fldr.Items
        If InStr(olMail.Body, "Salg i perioden") > 0 Or _
            InStr(olMail.Subject, "Salg i perioden") > 0 Then

            ActiveSheet.Cells(i, 1).Value = olMail.ReceivedTime
            i = i + 1
        End If
    Next olMail

    Set Fldr = Nothing
    Set olNs = Nothing
    Set olApp = Nothing

End Sub
Avatar billede supertekst Ekspert
03. maj 2012 - 09:40 #5
Har ikke tid lige nu p.g.a. kundeopgave - vender tilbage
Avatar billede Slettet bruger
03. maj 2012 - 09:44 #6
Okay, Super - mange tak skal du have!
Avatar billede supertekst Ekspert
05. maj 2012 - 12:08 #7
Hej igen

Har du mulighed for at sende en testmail med realistisk indhold - så jeg har noget at teste på?

@-adresse under min profil.
Avatar billede Slettet bruger
08. maj 2012 - 22:19 #8
Hej! Jeg vender lige tilbage i starten af næste uge! Jeg er nemlig på kursus hele ugen, så kan ikke lige tilgå mit materiale....

Men vender snareste tilbage, og tak fordi du gider hjælpe..
.
Har forresten fået det til at gøre sådan det smider hele mailen ind i excel, nu har jeg blot de tproblem at jeg skal få det ud i forskellige celler, men vender ligetilbage på mandag..


tak
Avatar billede supertekst Ekspert
08. maj 2012 - 23:34 #9
Hej

Ok - jeg afventer & fortsat godt kursus..
Avatar billede supertekst Ekspert
24. maj 2012 - 11:14 #10
Rem Kode indlagt under Ark1 i Excelfil

Sub GetFromInbox()
Dim linjer As Variant, felter As Variant, felt As Variant
Dim bodyTekst As String, overskriftStart As Variant
Dim i As Integer, p As Long, ræk As Long

Dim olApp As Outlook.Application
Dim olNs As Namespace
Dim Fldr As MAPIFolder
Dim olMail As Variant
Const startRæk = 1

    Set olApp = New Outlook.Application
    Set olNs = olApp.GetNamespace("MAPI")
    Set Fldr = olNs.GetDefaultFolder(olFolderInbox)

    For Each olMail In Fldr.Items
        If InStr(olMail.Body, "Terminal S/N") = 1 Then
           
           
            bodyTekst = olMail.Body
            p = InStr(bodyTekst, "Terminal id")
            If p > 0 Then
                overskriftStart = Mid(bodyTekst, p)
                Exit For
            Else
                MsgBox "Overskrift ikke identificeret"
            End If
        End If
    Next olMail

    Set Fldr = Nothing
    Set olNs = Nothing
    Set olApp = Nothing
   
    ræk = startRæk
       
    linjer = Split(overskriftStart, Chr(13) & Chr(10))
    For l = 0 To UBound(linjer)
        If linjer(l) <> "" Then
            linjer(l) = Replace(linjer(l), Chr(34), "")
            felter = Split(linjer(l), ",")
            For f = 0 To UBound(felter)
                felt = felter(f)
                If felt = "" Then
                    Exit For
                End If
                Cells(ræk, f + 1) = felt
            Next f
        Else
            felt = ""
        End If
        If felt <> "" Then
            ræk = ræk + 1
        End If
    Next l
    Columns.AutoFit
End Sub
Avatar billede Slettet bruger
24. maj 2012 - 12:43 #11
Super godt arbejde! Tak for hjælpen!
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
Kurser inden for grundlæggende programmering

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