22. maj 2008 - 12:17Der 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.
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.
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
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
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.
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?
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!
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!
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.
Synes godt om
Ny brugerNybegynder
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.