Avatar billede HHA Professor
15. februar 2021 - 14:42 Der er 14 kommentarer og
1 løsning

Gem ark som PDF og åben mail, klar til afsendelse

Hejsa,

Nu fik jeg da hjælp til og løst det med filnavnet :)

Men har denne kode, som jeg har googlet og prøvet mig frem med, men den vil ikke åbne mail programmet.
Jeg kører bruger Office 365.
Mener at have læst at der er flere måder at gøre det på. Men den ene måde skulle understøtte at man også kan køre koden på andre PC'er.

Nedenstående kode virker så langt at den gemmer arket som PDF, men så sker der heller ikke mere.
Nogen der kan sparke mig i den rigtige retning?

Sub Gem_som_PDF_OG_mail()
'
' Gem_som_PDF_OG_mail Makro
'
Dim thisPath As String, docName As String

thisPath = Application.ActiveWorkbook.Path

docName = thisPath & "\TO " & Range("C4") & " - " & Range("C6") & " - " & Range("C5")

Sheets("TO dansk").Activate
'Range("C4").Select
With Sheets("TO dansk")
    .ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=docName, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False 'True
'End With


'Option Explicit


    On Error GoTo err_handler

    Dim oApp As Outlook.Application
    Dim oMail As Outlook.MailItem

    Set oApp = CreateObject("Outlook.application")
    Set oMail = oApp.CreateItem(0)
   
       
    Dim folderPath As String
    'Dim pdfFileName As String
   
    '// Construct the file path and name
    'folderPath = "C:\Users\exampleuser\emails\"
    'pdfFileName = Sheets("Sheet1").Range("C1").Value & ".pdf"
   
    '// Export the workbook as PDF
  ' ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=folderPath & pdfFileName
   
    '// Open Outlook and create a new email
    Set oApp = Outlook.Application
    Set oMail = oApp.CreateItem(olMailItem)
   
    With oMail
        .To = "hha@shipyard.dk" 'Sheets("Sheet1").Range("B5").Value
        .CC = "example@myemail.com"
        .Subject = "Enjoy the attached: " & docName 'pdfFileName
        .body = "This is a test..." 'This is the text that will appear in the body of the email. Remove it if not needed.
        .Attachments.Add Source:=docName, Type:=xlTypePDF  'folderPath & pdfFileName, Type:=xlTypePDF
        .Display 'This will display the email so you can review it before sending. If you want to send it automatically replace .Display with .Send
    End With
   
    If oApp Is Nothing Then
  MsgBox "Could not start Outlook.", vbInformation
  Exit Sub
End If

clean_exit:
    Set oMail = Nothing
    Set oApp = Nothing
    Exit Sub
   

err_handler:
    'Something has gone wrong, spit out an error messsage
    MsgBox Err.Number & ": " & Err.Description, vbCritical, "Error"
    GoTo clean_exit

End Sub
Avatar billede ebea Ekspert
15. februar 2021 - 15:38 #1
Jeg har et eks. på en PDF og mail løsning, som fungerer. Du kan enten bruge den direkte, eller ændre den til dit behov.
Prøv og se, om ikke den gør det du efterspørger.
https://www.dropbox.com/scl/fi/pfhdtjgx5z5uv2teza3v3/mail-test.xlsm?dl=0&rlkey=yi6sub0z7zoa93rzjammo5ic6
Avatar billede HHA Professor
15. februar 2021 - 15:44 #2
ebea,

Den skal jeg da lige have afprøvet 👍
Avatar billede HHA Professor
15. februar 2021 - 16:37 #3
ebea,

Det virker næsten helt som det skal 👏

Har du så et fif til hvordan den tager den standard signatur med fra Outlook?
Vi er flere der bruger Excel filen, så den skal tage signaturen fra Outlook.

Men super det kom med, takker.
Avatar billede ebea Ekspert
15. februar 2021 - 16:50 #4
#3 - Er det bruger navn på profilen du mener? Den er indeholdt i koden.

          & Application.UserName & vbLf & vbLf
Avatar billede HHA Professor
15. februar 2021 - 17:05 #5
Den kode del, har jeg med, men der kommer ikke den signatur med, som er i outlook.
Avatar billede ebea Ekspert
15. februar 2021 - 17:25 #6
#5 - Hvad helt konkret, mener du at det er for en signatur der ikke kommer med?

Brugeren af den outlook, hvorfra mailen sendes, vil have sit navn påført nederst i mailen.
Avatar billede HHA Professor
15. februar 2021 - 17:30 #7
#6 - Jeg er med på at den tager brugernavnet.
Jeg vil gerne have den til at tage den signatur der ligger i min Outlook.
Forskellige brugere af Excel filen, kan jo have forskellige titler osv.

Kan det lade sig gøre?
Avatar billede ebea Ekspert
15. februar 2021 - 18:09 #8
#7 - Så det er den signatur som hver enkelt har defineret, som nederst i mailen (hvis jeg forstår dig korrekt).
Men for at det skal virke, skal du vide, nøjagtig hvor den fil som gemmer signaturen, er placeret. Og det kan være forskellig, afhængig af den Windows version man bruger:
Normalt ville den befinde sig i "C:\brugere\detbrugernavndubruger\AppData\Roaming\Microsoft\Signatures\Mysig.htm"
Men det er ganske forskelligt. Jeg kan f.eks. ikke finde min egen signatur, nogen steder i min windows. 

Ellers vil du kunne indsætte dette nedenstående ind i Body sektionen i den mail opsætning jeg uploadede. Sæt den som sidste linje i Body sektionen.

SigString = Environ("appdata") & "\Microsoft\Signatures\Mysig.htm"

Men prøv at søge på din PC, om du kan finde den.
Avatar billede HHA Professor
15. februar 2021 - 18:52 #9
#8
Hej ebea,

Det er rigtigt, det er den der ligger standard i Oultlook jeg ønsker indsat.

Har lagt mærke til at når Outlook åbner en ny mail, så er min standard signatur der, men den bliver fjernet.....

Har prøvet med og uden den her kode SigString = Environ("appdata") & "\Microsoft\Signatures\Mysig.htm"

Jeg har fundet strengen til min signatur, men det gør ingen forskel.
Er da mærkeligt at den "sletter" siden/signaturen i mailen.
Avatar billede ebea Ekspert
15. februar 2021 - 19:15 #10
#9 - Passer din aktuelle placering af signatur filen, med det som SigString henviser til, og hvis, har du sat strengen korrekt? Det skal passe både med streng og filnavn.

Hvis du sender en "normal" mail til dig selv, forsvinder din signatur så?
Avatar billede HHA Professor
15. februar 2021 - 21:51 #11
Fandt dette på nettet.

https://stackoverflow.com/questions/42463833/alternatives-to-automatically-images-html-signatures-with-body-text-in-emails

Jeg har dog ikke evnerne til at programmere, først kopiere og efterfølgende indsætte det der står i Body.
Nogen der har løsningen på det?
Avatar billede ebea Ekspert
15. februar 2021 - 22:48 #12
#11 - Problematikken er den samme som jeg skrev til dig om. Det med signaturren som forsvinder, findes der ikke et endegyldigt svar på, og problematikken har stået på i vel omkring 10 år!
Hvis du tester i koden, som jeg foreslog dig, vil du kunne se, at selvom du indsætter  .Display det korrekte sted i Body sektionen, så forsvinder din signatur i Outlook, når mailen genererer Body sektionen, og den vil ikke genetablere, selvom du indsætter  .Display, endnu engang.

Jeg vil prøve at se, om jeg kan lave en anden mail opsætning, som også kan sende en PDF fil.
Avatar billede ebea Ekspert
16. februar 2021 - 18:01 #13
Jeg har uploadet en ny version, som gør det du efterlyste ;-)
Avatar billede HHA Professor
16. februar 2021 - 18:25 #14
Det var lige hvad der skulle til.

Takker rigtig mange gange for din hjælp.
Avatar billede ebea Ekspert
16. februar 2021 - 18:28 #15
#14 - Du er velkommen ;-)
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

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