Avatar billede dasch87 Nybegynder
22. maj 2008 - 12:17 Der er 11 kommentarer og
2 løsninger

Excell Makro til automatisk mail?

Hej Eksperter
Jeg ville høre om det er muligt at lave en makro eller lignende i excell som gør at når man trykker på en mail adress i excell så åbner den en mail til personen (dette er standard), men derudover skal mailen have en standard tekst? Kan man gøre det sådan at det afhænger af mail adressen også?

Hvis dette kan lade sig gøre så ville jeg meget gerne have en fuld guide til det, da jeg ALDRIG har arbejdet med makroer før.

Jeg bruger Office 2007

På forhånd tak.
/Dasch
Avatar billede jkrons Professor
22. maj 2008 - 14:08 #1
Du er nok nødt til at være lidt merec specifik. Men umiddelbart kan du indsætte fx tekst, der står i celler som tekst i mailen. På den måde kan du - ud or hver modtager, skrive den standardtekst, du gerne vil have med, og den kan du så få indsat.
Avatar billede dasch87 Nybegynder
22. maj 2008 - 14:23 #2
hmn hvordan mere specifik.., jeg tror du har fat i hvad jeg mener:D jeg er lige glad med hvor teksten står., hvis jeg skal skrive den i en celle een gang og den så hver gang fremover bliver taget med i mailen så er det fint for mig:D Men altså ja jeg vil gerne have en standard tekst ind i en mail når jeg trykker på en email adresse i excell:S
Avatar billede jkrons Professor
22. maj 2008 - 16:37 #3
Denne kode løser dit problem. Spørgsmålet er bare, hvordan den skal "trigges". Koden forudsætter, at den tekst, der autiomatisk skal skrives i mailen skal stå i cellen lige til højre for den celle, der indeholder mailadressen.

Koden forudsætter, at du bruger Outlook som mailprogram. Jeg vender tilbage med en detaljeret forklaring lidt senere.

On Error Resume Next
    Dim olApp As New Outlook.Application
    Dim olNewMail As Object
    Dim Recep As String
    Dim MsgTxt As String

    Set olApp = GetObject("Outlook.Application")

        Recep = Target.Value
        MsgTxt = Target.Offset(0, 1).Value
        Set olNewMail = CreateItem(olMailItem)
        With olNewMail
            .Recipients.Add Recep
            .Body = MsgTxt
            .Subject = "Automatisk mail"
            .ReadReceiptRequested = False
            .OriginatorDeliveryReportRequested = False
            .Save
            .Display
  '          .Send
        End With
Avatar billede jkrons Professor
22. maj 2008 - 18:40 #4
OK, her er en metode, der forhåbentlig skulle virke. Du kan skrive dine emailadresser hvor som helst i regnearket, men den tekst, der skal med i mailen, SKAL stå i cellen lige til højre for den pågældende adresse. Adresserne skal tastes ind som fx jkrons@post.dk - og de må ikke opfattes som hyperlink. Jeg har ikke 2007 ved hånden, men under indstillinger for autokorrektur kan man typisk indstille, at den ikke automatisk konverterer celler med @ til autotekst.

Højeklik nu på arkfanen i det ark, hvor du har dine mailadresser og tekster. Kopier denne kode ind:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If InStr(1, Target, "@") = 0 Then Exit Sub
    On Error Resume Next
    Dim olApp As New Outlook.Application
    Dim olNewMail As Object
    Dim Recep As String
    Dim MsgTxt As String

    Set olApp = GetObject("Outlook.Application")

        Recep = Target.Value
        MsgTxt = Target.Offset(0, 1).Value
        Set olNewMail = CreateItem(olMailItem)
        With olNewMail
            .Recipients.Add Recep
            .Body = MsgTxt
            .Subject = "Automatisk mail"
            .ReadReceiptRequested = False
            .OriginatorDeliveryReportRequested = False
            .Save
            .Display
  '          .Send
        End With
    Cancel = True
End Sub

Når du nu klikker på en celle, der indeholder en e-mail adresse, starter Outlook automatisk op med modtageren sat ind i Til: og teksten sat ind i mailen. Emnet udfyldes med "Automatisk mail" - ret det i koden til det, du gerne vil have stående.

Hvis du vil have funktionen til at sende mailen automatisk i stedet for at vise den, skal du slette anførselstegnet ud for .Send, og sætte ud for .Display i stedet.
Avatar billede dasch87 Nybegynder
23. maj 2008 - 10:26 #5
tak for den detaljerede beskrivelse jkrons. Du må undskylde jeg spørger dumt, men jeg har aldrig arbejde med makroer eller lignende før. Men jeg går ud fra at jeg skal kopiere koden ind i "vis program kode". Men når jeg så gemmer det som en makro og prøver at trykke på mail adressen får jeg en fejl i koden:
"compile error:user-define type not defined"
OG så markerer den den første linje med gult og dette:
"olApp As New Outlook.Application"
med gråt:S kan du se hva fejlen er?
Avatar billede dasch87 Nybegynder
28. maj 2008 - 17:37 #6
Er det noget du måske har en løsning på eller er der andre som har et forslag..?
Avatar billede supertekst Ekspert
28. maj 2008 - 17:41 #7
I VBA-vinduet - når fejlen kommer:
Stop udførelsen via Stop-knappen.
Menupunktet: Tools / References / Find "Microsoft Outlook Object Library.." i listen - sæt flueben - gem

Prøv om det ikke hjælper..
Avatar billede jkrons Professor
28. maj 2008 - 19:03 #8
Som supertekst skriver skal der en reference til Outlook bilbioteket. Det glemte jeg at skrive i forbindelse med makroen.
Avatar billede dasch87 Nybegynder
02. juni 2008 - 15:10 #9
Cool det virker, mange tak for hjælpen begge to:D Hvis i begge smider et svar får i begge point:D Er der måske en af jer som kan hjælpe mig med at lave referencen til teksten så den altid refererer til det samme felt? Evt i et andet ark? altså så ikke teksten skal stå til højre for mail adressen, men evt stå i den første celle i et andet ark?
Jeg vil gerne give flere point for den yderligere hjælp!
Avatar billede jkrons Professor
02. juni 2008 - 16:04 #10
et

MsgTxt = Target.Offset(0, 1).Value

til

MsgTxt = Sheets("Arknavn").Range("A1).Value

Ret indholdet af de to parenteser til at pege på det og den celle, din tekst skal komme fra.
Avatar billede supertekst Ekspert
02. juni 2008 - 17:28 #11
Selv tak..
Avatar billede dasch87 Nybegynder
03. juni 2008 - 09:37 #12
tak jkrons, jeg har ændret det du sagde til:
MsgTxt = Sheets(Ark2).Range(A1).Value

da teksten er i den første celle i ark 2, men det virker ikke. Jeg får en ny mail med subject: "Automatisk Mail" men jeg får ingen tekst ind i mailen, kan du sige hvorfor?
På forhånd tak!
Avatar billede dasch87 Nybegynder
03. juni 2008 - 09:46 #13
Den skulle selvfølgelig bare have anførsels tegnene med:D så nu virker det.
Tusind tak for hjælpen begge to.. I får point.
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