Bigelk Skrevet 29. oktober 2013 Del Skrevet 29. oktober 2013 Hei. Jeg har i dag en macro i excel som lager en ny arbeidsbok og sender denne på mail. Men, i stede for at den sender mailen. er det mulig å få den til å bare gjøre klar mailen? Sånn at det går ann å skrive mer i mailen før man sender den selv. Kode snipp Dim OutApp As Object Dim OutMail As Object Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) On Error Resume Next With OutMail 'Hvem mailen skal sendes til. Finnes i ark "ver" celle G6 .To = Sheets("Ver").Range("G6").Value .CC = "" .BCC = "" 'Emne til mailen som skal sendes. Fra finnes i ark "Ver" celle G8 .Subject = "Rapport for periode " & strNewWBName & "" & " Fra " & Sheets("Ver").Range("G8").Value .Body = "" 'legger ved rapporten .Attachments.Add (NewWBLoc & strNewWBName & ".xlsx") .Send End With On Error GoTo 0 Set OutMail = Nothing Set OutApp = Nothing Mvh Torbjørn Lenke til kommentar
Harald Staff Skrevet 29. oktober 2013 Del Skrevet 29. oktober 2013 Hei Torbjørn Endelig noe litt enkelt :-) Bytt .Sendmed .View Beste hilsen Harald Lenke til kommentar
Bigelk Skrevet 29. oktober 2013 Forfatter Del Skrevet 29. oktober 2013 Hei. Det fikk jeg ikke til å fungere. Det ser ut til at alt fungerer helt til den skal gjøre klar mailen. Legger ved hele Sub classen i tilfellet det er noe der som gjør at det ikke fungerer. Sub Send_mail()'Sender mail Application.ScreenUpdating = False Dim strNewWBName As String, FullRngNewWb As Range, WB As Workbook, NewWBLoc As String 'lokasjonen hvor den nye arbeidsboken midlertidig vil bli lagret før den slettes finnes i ark "Ver" celle G10 NewWBLoc = Sheets("Ver").Range("G10").Value 'setter rangen som skal kopieres til arbeidsboken som skal sendes på mail Set FullRngNewWb = ActiveSheet.Range("A1:O500") 'gir variabelen strNewWBName navnet til arket som skal sendes på mail strNewWBName = ActiveSheet.Name 'oppretter en ny arbeidsbok Workbooks.Add 'kopierer området over til den nye arbeidsboken FullRngNewWb.Copy Destination:=Range("A1") 'Fryser de 2 øverste radene Rows("3:3").Select ActiveWindow.FreezePanes = True 'setter kolonnebredden så den er optimal for utskrift, setter marger til 0 og gjør retning til liggende Columns("A:A").ColumnWidth = 8 Columns("B:B").ColumnWidth = 5.3 Columns("C:C").ColumnWidth = 26 Columns("D:D").ColumnWidth = 7.1 Columns("E:E").ColumnWidth = 7.2 Columns("F:H").ColumnWidth = 5.3 Columns("G:G").ColumnWidth = 6.1 Columns("I:I").ColumnWidth = 5.1 Columns("J:J").ColumnWidth = 6.7 Columns("K:N").ColumnWidth = 4.5 Columns("O:O").ColumnWidth = 33 With ActiveSheet.PageSetup .Orientation = xlLandscape .LeftMargin = Application.InchesToPoints(0) .RightMargin = Application.InchesToPoints(0) End With 'sletter knappen "Send mail" ActiveSheet.Shapes("Button 1").Delete 'setter navnet på arbeidsboken og lagrer den. Altså arknavnet. Arknavnet er perioden rapporten er skrevet for ActiveWorkbook.SaveAs (NewWBLoc & strNewWBName & ".xlsx") 'lukker den nye arbeidsboken ActiveWorkbook.Close Dim OutApp As Object Dim OutMail As Object Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) On Error Resume Next With OutMail 'Hvem mailen skal sendes til. Finnes i ark "ver" celle G6 .To = Sheets("Ver").Range("G6").Value .CC = "" .BCC = "" 'Emne til mailen som skal sendes. Fra finnes i ark "Ver" celle G8 .Subject = "Rapport for periode " & strNewWBName & "" & " Fra " & Sheets("Ver").Range("G8").Value .Body = "" 'legger ved rapporten .Attachments.Add (NewWBLoc & strNewWBName & ".xlsx") .View End With On Error GoTo 0 Set OutMail = Nothing Set OutApp = Nothing 'Sletter den nye arbeidsboken etter at mailen har blitt sendt On Error Resume Next Kill (NewWBLoc & strNewWBName & ".xlsx") On Error GoTo 0 Application.ScreenUpdating = True End Sub Lenke til kommentar
Harald Staff Skrevet 29. oktober 2013 Del Skrevet 29. oktober 2013 Unnskyld, sånn er det å stole på hukommelsen . Det heter ikke View for Outlok, det heter Display. (Pass på at koden ikke sletter filen før den er sendt.) Harald Lenke til kommentar
Bigelk Skrevet 29. oktober 2013 Forfatter Del Skrevet 29. oktober 2013 Og der fungerte det Jeg testa litt med å bare la "Kill" koden stå som den gjorde. å det fungerer helt fint. Er det noe jeg kan la gå eller er det stor sannsynlighet for at dette skaper problemer senere? Tusen takk for hjelpen Mvh Torbjørn Lenke til kommentar
Harald Staff Skrevet 30. oktober 2013 Del Skrevet 30. oktober 2013 Aha, da er et vedlegg en kopi og ikke bare en peker. Dette kan jeg ikke nok om, du får nok stole på testresultatene dine. Beste hilsen Harald Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå