12. oktober 2021 - 14:55Der er
6 kommentarer og 1 løsning
Automatisk email med VBA
Hej Alle eksperter
Jeg har denne VBA kode som jeg bruger til en knap der generere en automatisk email. Jeg har brugt den på et andet Excel dokument før og skal nu bruge den på et nyt. Men jeg får fejl når jeg kører den. Den siger "Denne fil blev ikke fundet". Linjen fejlen kommer på har jeg skrevet FEJL helt ude til højre. Kan ikke selv se hvad fejlen skulle være, når præcis samme kode virker et andet dokument. Håber i kan hjælpe...
Private Sub CommandButton1_Click()
Dim IsCreated As Boolean Dim i As Long Dim PdfFile As String, Title As String Dim OutlApp As Object
' Not sure for what the Title is Title = Range("A1")
' Define PDF filename PdfFile = ActiveWorkbook.FullName i = InStrRev(PdfFile, ".") If i > 1 Then PdfFile = Left(PdfFile, i - 1) PdfFile = Format(Now(), "MM-DD-YYYY") & " Ordre" & ".pdf"
' Export activesheet as PDF With ActiveSheet .PageSetup.PaperSize = xlPaperLegal .ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End With
' Use already open Outlook if possible On Error Resume Next Set OutlApp = GetObject(, "Outlook.Application") If Err Then Set OutlApp = CreateObject("Outlook.Application") IsCreated = True End If OutlApp.Visible = True On Error GoTo 0
' Prepare e-mail with PDF attachment With OutlApp.CreateItem(0)
' Prepare e-mail .Subject = "Faber-Castell ordre" & Format(Now(), "MM-DD-YYYY") .To = "sale@email.com" ' <-- Put email of the recipient here .CC = "" ' <-- Put email of 'copy to' recipient here .Body = "Ordre " & vbLf & vbLf _ & "" & vbLf & vbLf _ '& "Regards," & vbLf _ (slet (') for regards Faber-Castell) '& Application.UserName & vbLf & vbLf .Attachments.Add PdfFile FEJL
' Try to send On Error Resume Next .display Application.Visible = True If Err Then MsgBox "E-mail was not sent", vbExclamation Else MsgBox "Din ordre er hermed afgivet", vbInformation End If On Error GoTo 0
End With
' Delete PDF file Kill PdfFile
' Release the memory of object variable Set OutlApp = Nothing
Nå, ved nærmere undersøgelse gemmer den på mit skrivebord. Men jeg tænker ikke attachement.add har styr på hvor mit chrdir er. Kunne det evt. være det der driller? Jeg tilføjer typisk kun xlsx filer, og der er filen åben - måske problemet er at pdf'en ikke åbner, men kun exporterer? Der tror jeg der er nogle andre kloge hoveder der skal på banen :)
#2 - Det som koden gør, er at oprette en PDF fil ud fra det som er i den aktuelle åbne fil. Den bliver så sendt med Outlook (skulle sendes), ud fra de kommandoer som er angivet i koden. At der står .Display, gør kun at pdf filen vises, inden sending. Men filen sendes ikke automatisk, da der mangler .Send
Om så spørgeren reagerer på indlæggene, er nok en anden sag! Indtil videre, ser det ikke som han har den store interesse i det.
Tak for jeres input. Jeg har bevidst ikke sat .send på da jeg egentlig bare ville have den skulle åbne mailen med pdf filen, da jeg gerne ville have at man skulle kunne rette i mailen inden man så sender.
Jeg ved ikke hvordan, men fejlen den kom op med er forsvundet, aner ikke hvad jeg har fået gjort, men nu virker det altså. Heldigvis.
Men i skulle vel ikke vide hvordan jeg kan sende det som en CSV fil også? Jeg har prøvet at ændre de steder hvor der står pdf, pdffile osv. så alt hed Csv men det virker ikke. Jeg ved ikke lige hvordan jeg kan ændre det uden at rette for meget i koden. Er det overhovedet muligt at bruge den samme kode og bare ændre filformatet? Eller skal jeg lave en helt ny?
#5 - Du kan ikke sende din fil som en CSV fil, ligesom du kan med en PDF fil. For at gøre dette, er du nødt til at gemme din fil først som en CSV fil, og derefter hente den ind i din Outlook kode (din kode du har, skal ændres).
Og så ville det være god skik, at lukke dine spørgsmål, hvis du har fået løst emnet, du spurgte om. Du har et andet spørgsmål stående åben!
Jeg får lukket disse spørgsmål så og laver et nyt mht. CSV filen, måske er der et smart trick.
Hvordan lukker man spørgsmål? Er det ved at markere en kommentar som løsning, eller kan man helt lukke kommentarsporet?
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.