Avatar billede Henry Poulsen Mester
27. marts 2008 - 23:49 Der er 12 kommentarer og
1 løsning

VBA kode skal fra Excel sende en MS Outlook mail

Jeg har et regneark, som i
[A1] indeholder en mailadresse (var_1)
[B1] varenavn (var_2)
[C1] antal (var_3)og dertil en
tekststreng (var_4)= "Deres bestilte " & (var_3) " stk. " & (var_2) &" er hjemkommet, og kan afhentes.".
Jeg vil nu gerne med VBA kode åbne en ny mail, sætte
(var_1) i Til-feltet,
(var_2) i Emne-feltet, og tekststrengen
(var_4) i meddellelses-feltet.
Jeg får brug for at sekvensen kan gentages op til 10 gange i ligeså mange rækker. Løkkestrukturen kan jeg skrive, men hvordan får jeg VBA kode til at oprette de 10 mails?
Avatar billede jkrons Professor
28. marts 2008 - 00:11 #1
Denne kode opretter en enkelt mail. Du skal selv tilføje løkken, der gør det 10 gange.

   
    Dim olApp As New Outlook.Application
    Dim olNewMail As Object
    Dim Recep As String
    Dim MsgTxt As String
    Dim Varnavn As String
    Dim varantal As Long
         
    Recep = Range("a1").Value
    Varnavn = Range("B1").Value
    varantal = Range("c1").Value
    MsgTxt = "Deres bestilte " & varantal & " stk. " & Varnavn & " er hjemkommet, og kan afhentes."

    Set olApp = CreateObject("Outlook.Application")
    Set olNewMail = CreateItem(olMailItem)

    With olNewMail
        .Recipients.Add Recep
        .Body = MsgTxt
        .Subject = Varnavn
        .ReadReceiptRequested = False
        .OriginatorDeliveryReportRequested = False
        .Save
        .Send
    End With
Avatar billede jkrons Professor
28. marts 2008 - 00:32 #2
Med løkke:

Sub SendAktiv()
On Error Resume Next
    Dim olApp As New Outlook.Application
    Dim olNewMail As Object
    Dim Recep As String
    Dim MsgTxt As String
    Dim Varnavn As String
    Dim varantal As Long
    Set olApp = GetObject("Outlook.Application")
    For i = 1 To 10
        Recep = Range("A" & i).Value
        Varnavn = Range("B" & i).Value
        varantal = Range("C" & i).Value
        MsgTxt = "Deres bestilte " & varantal & " stk. " & Varnavn & " er hjemkommet, og kan afhentes."


        Set olNewMail = CreateItem(olMailItem)

        With olNewMail
            .Recipients.Add Recep
            .Body = MsgTxt
            .Subject = Varnavn
            .ReadReceiptRequested = False
            .OriginatorDeliveryReportRequested = False
            .Save
            .Send
        End With
    Next i
End Sub
Avatar billede Henry Poulsen Mester
30. marts 2008 - 22:30 #3
Tak for svaret, det ser rigtig spændende ud.
Jeg har lige forsøgt nogle gange, men bliver ved med at få følgende fejlmeddelelse:
"Compile error: User-defined type not defined." på teksten "olApp As New Outlook.Application" i kodelinje med 1. Dim - erklæring.
Er der en logik-ting jeg ike kan se?.
Avatar billede kabbak Professor
31. marts 2008 - 08:17 #4
Sæt reference til Microsoft Outlook, inde i Tools reference
Avatar billede Henry Poulsen Mester
31. marts 2008 - 11:05 #5
Uha, hvor det kører nu. Det virker perfekt.
Det er en fornøjelse med så kompetent assistance fra jer begge.
Tak skal I ha'.
Hvad gør vi med points?
Hilsen Henry
Avatar billede Henry Poulsen Mester
01. april 2008 - 21:51 #6
Hej igen
får jeg et svar fra jer, så jeg kan ekspedere points?
Hvad vil I sige til denne fordeling: jkrons 75, kabbak 25 ?
Egentlig har jeg fundet et tillægsspørgsmål, kan der blive til en løsning på det i jeres svar?
Kan jeg gemme mails send vha. VBA koden i en undermappe til Sendt Post? Jeg har oprettet en undermappe Auto_Sendt.
Hilsen Henry
Avatar billede kabbak Professor
02. april 2008 - 08:21 #7
Giv point til jkrons, jeg fortalte bare om referencen ;-))
Avatar billede jkrons Professor
12. april 2008 - 11:17 #8
Her er et svar.
Avatar billede Henry Poulsen Mester
12. april 2008 - 11:28 #9
Tak for hjælpen. Din kode er perfekt.
Men vil du hjælpe mig med tillægsspørgsmålet også?
Altså de mails der automatisk sendes af din kode, kan de ligeså automatisk gemmes i undermappen Sendt Post \ AutoSendt ?
Spørgsmålet er oprettet her
http://www.eksperten.dk/spm/827202
Avatar billede jkrons Professor
12. april 2008 - 15:59 #10
Den kigger jeg lidt på, når jeg kommer hjem i morgen.
Avatar billede Henry Poulsen Mester
21. april 2008 - 23:57 #11
Hej jkrons
Lykkes det at gemme mails i undermappen?
Jeg har leget lidt med Regler i Outlook. En regel  kan lave en kopi af sendte mails (med bestemte ord i teksten) og placere den i AutoSendt mappen, men så er den jo i begge mapper. Kan man rette "copy" til "move" et sted i regeldefinitionen?
Avatar billede jkrons Professor
22. april 2008 - 17:28 #12
På nuværende tidspunkt kan jeg kun få den til at gemme i "hovedmappen".

Vedr. det sidste, mener jeg kun at man kan kopiere - ikek flytte.
Avatar billede Henry Poulsen Mester
22. april 2008 - 22:48 #13
Så klarer jeg mig uden den finesse.
Men hvis du støder på muligheden engang, vil du tænke på mig?
Vil du ikke lige sende et svar på spørgsmålet
http://www.eksperten.dk/spm/827202
Du har brugt nogen tankevirksomhed på det.
Og mange tak for den hjælp du har givet mig.
Hilsen Henry
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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