Forfatter |
Emne Søg Emne funktioner
|
svinding67
Bronze bruger
Medlem: 08.Maj.2012
Land: Danmarl
Status: Offline
Point: 22
|
Emne: Makro der sender pdf fil via outlook Sendt: 08.Maj.2012 kl. 12:54 |
Kære Forum
Jeg har nedenstående bid vba program der ved tryk på knap sender excel fil til de definerede brugere i c4. Men jeg ønsker fil sendt som pdf men kan ikke finde ud af hvordan. Kan i hjælpe?
activeWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\DOCUME~1\nsa\LOKALE~1\Temp\Mappe1.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:= _ False activeWorkbook.SendMail Recipients:=([c4]), Subject:=("budgetopfølgning maj") End Sub
Mvh Niels
|
|
|
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 08.Maj.2012 kl. 20:44 |
Hej Niels, Jeg har en kodestump som jeg lavede for en del år siden, den er din hvis du kan bruge den. Det aktive ark gemmes på skrivebordet som pdf og sendes til alle adresser som står i C4. Koden skal placeres i sit eget modul. Kør sub'en Print_To_PDF for at starte afsendelsen. //Allan Const BrevFil = "Fil.pdf" Const Aarsag = "Hermed efter aftale..." Sub Print_To_PDF() 'Finder brugerens skrivebord Dim objFolders As Object Set objFolders = CreateObject("WScript.Shell").SpecialFolders SaveDir = objFolders("desktop") Call Sendmail End Sub Sub Sendmail() 'Finder brugerens skrivebord Dim objFolders As Object Set objFolders = CreateObject("WScript.Shell").SpecialFolders SaveDir = objFolders("desktop") Dim olApp As Outlook.Application Dim oItem As Outlook.MailItem Set olApp = New Outlook.Application Set oItem = olApp.CreateItem(olMailItem) With oItem .To = Range("C4").Text .CC = "" .BCC = "" 'Mail emne .Subject = "Daglig mail pr. d." & Date 'Mail tekst .Body = " " & vbNewLine & Aarsag & vbNewLine 'Vedhæftet PDF fil .Attachments.Add SaveDir & Application.PathSeparator & BrevFil 'Mulighed for at kræve svar når modtager åbner mailen .ReadReceiptRequested = False .Send End With 'Sletter PDF fil Kill SaveDir & Application.PathSeparator & BrevFil End Sub
|
|
svinding67
Bronze bruger
Medlem: 08.Maj.2012
Land: Danmarl
Status: Offline
Point: 22
|
Sendt: 10.Maj.2012 kl. 14:52 |
Hej Allan
Tak for det fremsendte. Jeg vil kigge på det, men umiddelbart kan jeg ikke genkende min egen vba koder! Troede på en mere simpel løsning da jeg ikke er en haj til vba. Jeg havde håbet at kunne tilføje en linje til min kode men så let er det nok ikke.....mange hilsner Niels
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 15.Maj.2012 kl. 20:25 |
Velbekomme. Sig til hvis jeg koden er for indviklet eller ikke virker. Jeg laver gerne et andet oplæg. //Allan
|
|
svinding67
Bronze bruger
Medlem: 08.Maj.2012
Land: Danmarl
Status: Offline
Point: 22
|
Sendt: 04.Jun.2012 kl. 13:27 |
Hej Allan
Kan du hjælpe yderligere hvis du tager nedenstående i betragtning:
min fil jeg ønsker at sende som pdf hedder "budgetopfølgning juni 2012"
den skal sendes som pdf
til modtagerne i c4
til cc i c5
til bcc i c6
der skal ikke gemmes på skrivebord
ikke krav om at modtager skal svare
Jeg er jo ikke ekspert i vba så du må gerne tydeliggøre hvad der er decideret programering og hvad der er uddybende forklaring:)
Når nu dette er en fil jeg vil sende månedligt (efter opdatering) kan jeg så definere emne i mail til at følge filens navn?
Håber du kan hjælpe videre.
Mange hilsner
Niels
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 04.Jun.2012 kl. 14:06 |
Hej Niels, Selvfølgelig vil jeg hjælpe. Nedenstående kode gør som du efterspørger. Rent teknisk, er jeg nødt til at gemme pdf'en et sted for at kunne sende den, men den slettes automatisk efter at mailen er sendt. Du kan selv rette filnavn og brødtekst i koden foroven. Der er mulighed for at pdf kan få samme navn som din Excelfil eller måske fanens navn, hvad ønsker du? Kopier hele koden (Den som er farvet blå herunder) ind i dit ark. Når du har sat koden ind, vil du kunne se at jeg har skrevet lidt forklaringer i koden. (De vil være fremhævet med grønt) Har du brug for hjælpe til at lægge koden i dit ark, så sig til. Const FilNavn = "budgetopfølgning juni 2012.pdf" Const Broedtekst = "Hermed fremsendes budgetopfølgning juni 2012" Sub Print_To_PDF() 'Finder brugerens skrivebord Dim objFolders As Object Set objFolders = CreateObject("WScript.Shell").SpecialFolders SaveDir = objFolders("desktop") Call Sendmail End Sub Sub Sendmail()
'Finder brugerens skrivebord, hvor en midlertidig fil gemmes Dim objFolders As Object Set objFolders = CreateObject("WScript.Shell").SpecialFolders SaveDir = objFolders("desktop") Dim olApp As Outlook.Application Dim oItem As Outlook.MailItem Set olApp = New Outlook.Application Set oItem = olApp.CreateItem(olMailItem) With oItem 'Hvem sendes mailen til .To = Range("C4").Text .CC = Range("C5").Text .BCC = Range("C6").Text 'Mail emne .Subject = FilNavn 'Mail tekst .Body = " " & vbNewLine & Broedtekst & vbNewLine 'Vedhæfter PDF fil .Attachments.Add SaveDir & Application.PathSeparator & FilNavn 'Mulighed for at kræve svar når modtager åbner mailen .ReadReceiptRequested = False .Send End With 'Sletter midlertidig fil fra skrivebordet Kill SaveDir & Application.PathSeparator & FilNavn End Sub
|
|
svinding67
Bronze bruger
Medlem: 08.Maj.2012
Land: Danmarl
Status: Offline
Point: 22
|
Sendt: 04.Jun.2012 kl. 14:59 |
Hej Allan
Tak for hurtigt svar. Jeg får en fejl retur efter indsættelse af dit forslag. Ville det værer ok hvis jeg sendte fil og du indsatte programmeringen? Hvis det kan lade sig gøre...
/Niels
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 04.Jun.2012 kl. 15:20 |
Intet problem, Klik på mit navn til højre for denne besked og vælg "Send personlig besked" Upload dit regneark og send den til mig. //Allan
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 05.Jun.2012 kl. 10:30 |
Hej igen, Nu har jeg lagt koden i din fil, så den kan sendes via mail som pfd ved klik på en knap. Husk at ændre e-mailadresserne så de passer med virkeligheden. Inden du forsøger at bygge det ind i et andet ark, skal du huske at lave en reference til Outlook i VBA-editoren på det nye ark. Det gøres således: Gå ind i VBA-editoren (ALT + F11) Gå op i menuen og vælg 'Tools' og 'References' På listen skal du nu sætte en markering ved 'Outlook xx.x OPbject Library' Når det er gjort, vil det virke. //Allan
|
|
svinding67
Bronze bruger
Medlem: 08.Maj.2012
Land: Danmarl
Status: Offline
Point: 22
|
Sendt: 07.Jun.2012 kl. 08:11 |
Hej Allan
Det virker
Mange tusinde tak for hjælpen (som altid super hjælp at hente her). Jeg glæder mig til at bruge dette ifm arbejde. Jeg har lånt en bog om vba programmering og med dette program og strukturen bagved er jeg godt på vej.
Vil senere i dag ligge programmet i den rette fil og så hurtigt som muligt tage den i anvendelse...glæder mig til den lettelse dette vil give .
Mange tusinde tak. Hilsen Niels
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 07.Jun.2012 kl. 08:40 |
Velbekomme Niels og tak fordi du meldte din positive oplevelse tilbage. Tro mig, at læse VBA vil du ikke fortryde, det giver vildt mange muligheder for nemmere arbejdsgange. Når du har læst bogen, kan du f.eks. også besvare spørgsmål her i forummet , det er jo ikke så dårligt. //Allan
|
|
|
svinding67
Bronze bruger
Medlem: 08.Maj.2012
Land: Danmarl
Status: Offline
Point: 22
|
Sendt: 07.Jun.2012 kl. 11:42 |
Hej igen Allan
Jeg vil gerne tilføje yderligere i const broedtekst. Lige nu hedder den hermed fremsendes budgetopfølgning for juni 2012. Men hvis nu jeg ønsker at tilføje Kære Allan efterfulgt af Hermed.... og så slutte af med Mvh Niels. Har forsøgt diverse ting men den melder fejl.
Ligeledes har jeg behov for at kunne sende mail til flere en nsa@statsbiblioteket.dk. Har forsøgt at tilføje i celle c5 og så rette i programmet, men så sker der intet??
mvh Niels
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 08.Jun.2012 kl. 12:26 |
Hej Niels, Ret Const Broedtekst til: Const Broedtekst = "Kære rette vedkommende," & vbCrLf & "Hermed fremsendes budgetopfølgning juni 2012" & vbCrLf & "Med venlig hilsen Niels" Blot for forståelsen: For hver gang til man afslutter en tekst med gåseøjne, og vil tilføje en ny linje, skal man bruge VbCrLf (carriage return line feed) Når man skifter mellem tekst i gåseøjne og en statement som Line feed, bruges &-tegnet. Linjen skal se sådan ud. "Hej med dig" & VbCrLf & "jeg hedder Kaj" Resultatet bliver: Hej med dig jeg hedder Kaj //Allan
|
|
svinding67
Bronze bruger
Medlem: 08.Maj.2012
Land: Danmarl
Status: Offline
Point: 22
|
Sendt: 08.Jun.2012 kl. 12:36 |
Hej Allan
Super svar og fint at du gider at lave uddybningen for min forståelse.
Håber du senere kan hjælpe med mit andet spørgsmål om at kunne tilføje flere mail adresser:)
mange hilsner Niels
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 08.Jun.2012 kl. 15:06 |
Ups, det missede jeg. Du skal slet og ret skrive dem efter hinanden i cellen, blot med semikolon som seperator. //Allan
|
|
svinding67
Bronze bruger
Medlem: 08.Maj.2012
Land: Danmarl
Status: Offline
Point: 22
|
Sendt: 08.Jun.2012 kl. 20:30 |
Niels er meget glad for den hjælp han har fået indtil videre og glæder sig til at kunne give igen på et senere tidspunkt. VBA er bare forsmart.
Mange hilsner
Niels
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 11.Jun.2012 kl. 12:51 |
Super, Det var fedt at du kunne bruge det. //Allan
|
|
|
svinding67
Bronze bruger
Medlem: 08.Maj.2012
Land: Danmarl
Status: Offline
Point: 22
|
Sendt: 24.Sep.2012 kl. 12:11 |
Hej Jan
Har været nede og ligge efter en diskusprolaps opperation men skal nu afslutte min projekt med at sende fil som pdf.
Jeg har fået ovenstående til at virke, men i min excel fil er der flere faneblade der alle gerne skulle pdf'es i en og samme leverance? Jeg kan se i programmet at der står det aktive ark? Hvordan kan jeg sende den samlede excel fil som pdf.
Håber du også kan hjælpe mig videre med denne del:)
mvh Niels
|
|
svinding67
Bronze bruger
Medlem: 08.Maj.2012
Land: Danmarl
Status: Offline
Point: 22
|
Sendt: 24.Sep.2012 kl. 13:27 |
...jeg har fundet ud af at skrive workbook istedet for sheet. Men jeg har et problem der fortsat blokerer min afsendelse og ville også gerne kunne præciserer hvad der skulle pdf'es (evt. udskriftsområde eller akr 1-3 men ikke 4.
Men Jeg har lige nogle udfordringer med at få hul igennem til outlook som jeg lige vil have afklaret først. Jeg har sat hak under vba editoren ved outlook så det er ikke det der driller.
Den stopper under Sub Sendmail () ved linjen
Dim olap as outlook. application
det er ihvertfald fremhævet. og fejlmeddelsen compile error: user-defined type not defined.
Jeg har sendt outlook til min egen helpdesk funktion og håber at få afklaret fejlen hvorefter jeg håber du kan hjælpe med at få afgrænset de ark jeg vil pdf....
mvh NIels
|
|