Avatar billede nissetec Nybegynder
09. december 2008 - 14:01 Der er 5 kommentarer og
1 løsning

Udtrække sidste linje af email

Hej

Jeg får nogle emails med nogle informationer, hvor jeg kun skal bruge sidste linje. I denne linje er informationerne separeret af semikolon og de skal trækkes ud til et eksisterende excel-ark eller en tekstfil, hvorefter emailen skal flyttes til mappen Registreret under Indbakke i Outlook.

Mit største problem er, at jeg ikke kan få identificeret "sidste linje". Jeg har leget med end of file og end of line, men jeg kan ikke få kabalen til at gå op.

Hvis nogen har en idé til, hvordan jeg får fat i sidste linje (GetLastLine) i en markeret eller åbnet email, ville jeg blive glad.

Så skal jeg nok selv nørkle med at få puttet den ind i et andet dokument :)

På forhånd mange tak.
Avatar billede supertekst Ekspert
09. december 2008 - 14:37 #1
Du skal være velkommen til at sende en mail, der ligner de omtalte til:
pb(a)supertekst-it.dk

så måske.....
Avatar billede nissetec Nybegynder
09. december 2008 - 14:47 #2
Årh, top nice :)

Den er sendt af sted...
Avatar billede supertekst Ekspert
10. december 2008 - 23:01 #3
Rem Koden er udarbejdet i 2003-versionen - reference til OutLook er sat
Rem ===================================================================
Rem www.contextmagic.com/express-clickyes/
Rem ======================================
Rem På ovennævnte site kan der downloades kode, der undertrykker meddelelsen "Et program prøver at.."
Rem (Har anvendt det i flere år - uden problemer)
Rem =================================================================================================
Private Sub testMail()
Dim mailApp, Namespace, indbakke, m, sidsteLinie As String, række

On Error GoTo afslut

Rem Opsætter "forbindelse til indbakken"
    Set mailApp = CreateObject("Outlook.Application")
    Set Namespace = mailApp.GetNamespace("MAPI")
    Set indbakke = Namespace.GetDefaultFolder(olFolderInbox)
   
Rem Traversere indbakken
    If indbakke.Items.Count > 0 Then
        For m = 1 To indbakke.Items.Count
            emne = indbakke.Items(m).Subject
                       
Rem Tester emne-teksten - eksempel "Eksempel på mail" med start i første pos.
            If InStr(emne, "Eksempel på mail") = 1 Then
           
Rem Hvis ja - overfør meddelelsesteksten til variablen Tekst
                tekst = indbakke.Items(m).Body

Rem fang antal tegn i meddelelsen
                antaltegn = Len(tekst)
               
                sidsteLinie = ""
Rem Traverser gennem Tekst med start i sidste tegn og opbyg sidste linie tegnvist
                For t = antaltegn To 1 Step -1
                    tegn = Mid(tekst, t, 1)
                    sidsteLinie = tegn + sidsteLinie
                   
                   
Rem Test om linieskift / ny linie - hvis ja - afslut gennemløb
                    If InStr(sidsteLinie, Chr(13) & Chr(10)) = 1 Then
                        If Len(sidsteLinie) > 2 Then
                            Exit For
                        Else
                            If Len(sidsteLinie) = 2 Then
                                sidsteLinie = ""
                            End If
                        End If
                    End If
                Next t
               
Rem Fjern linieskift / ny linie i pos.1
                sidsteLinie = Mid(sidsteLinie, 3) + ";"
                MsgBox (sidsteLinie)                'kontrol kan slettes eller elimineres...(Rem eller ')
               
Rem opsplit de enkelte elementer
                elementer = Split(sidsteLinie, ";")
                antalelementer = UBound(elementer)
               
Rem sæt dem i regnearket
                række = 1                          'temp. løsning....
               
                For a = 0 To antalelementer - 1
                    Cells(række, 1 + a) = elementer(a)
                Next a
            End If
           
            Columns.AutoFit
        Next m
    End If
   
    MsgBox ("Gennemløb afsluttet")
afslut:
End Sub
Avatar billede nissetec Nybegynder
12. december 2008 - 14:27 #4
Hej du.

Lige i øjet. Jeg takker meget ;)

Har bare lige et enkelt problem: Hvis den finder flere mails som opfylder kriteriet fanger den fint nok den sidste linje. Men den indsætter dem alle i A1 i arket, og de overskriver dermed hinanden.

Hvordan får jeg den til at fylde nummer 2 og 3 osv ned i A2, A3 osv.?
Jeg synes, at

For a = 0 To antalelementer - 1
Cells(række, 1 + a) = elementer(a)
Next a

ser rigtig ud, men jeg kan ikke lige lure, hvorfor den ikke sætter næste hit nedenunder...
Avatar billede supertekst Ekspert
12. december 2008 - 14:33 #5
Fint - selv tak - vender tilbage vedr. ovenstående problem.....
Avatar billede nissetec Nybegynder
12. december 2008 - 16:40 #6
Jeg takker igen :)
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