Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1780to1784
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Blatt als PDF versenden
03.09.2020 12:57:07
Blume
Hallo,
eine Frage, ich habe einen Code um ein Blatt an eine Mail zu versenden. Aktuell kommen bei mir leider immer zwei Warnungen: Kompatibilität und Neu Berechnung, kann man die Hinweisfelder umgehen?
Sub Blatt versenden ()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String, wksMail As Worksheet
Sheets("Infoblattversenden").Select
Cells.Select
Selection.Copy
Workbooks.Add
Range("A1").Select
ActiveSheet.Paste
Range("L28").Select
Columns("J:J").EntireColumn.AutoFit
Columns("K:K").EntireColumn.AutoFit
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
Columns("L:L").EntireColumn.AutoFit
Columns("O:O").EntireColumn.AutoFit
ActiveWindow.ScrollColumn = 4
Range("A1").Select
Columns("P:P").Select
Selection.NumberFormat = "m/d/yyyy"
Range("A1").Select
ActiveWorkbook.SaveAs Environ("UserProfile") & "\Desktop\" & Format(Date, "YYMMDD") & "_" &   _
_
Range("C6") & "_Test123" & ".xls", FileFormat:=xlExcel8
Application.Visible = True
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = Range("C18")
.CC = ""
.Subject = "Test123" & Date & " " & Time
.Attachments.Add Environ("UserProfile") & "\Desktop\" & Format(Date, "YYMMDD") & "_" &  _
Range("C6") & "_Test123" & ".xls"
.Body = "Liebes Team der " & Range("C6") & ",  anbei erhalten Sie das Informationsblatt.   _
_
Viele Grüße" & Range("B3") & vbCrLf & ""
.Send
End With
Set OutApp = Nothing
Set Nachricht = Nothing
ActiveWorkbook.Close
Kill Environ("UserProfile") & "\Desktop\" & Format(Date, "YYMMDD") & "_" & Range("C6") & " _
_Test123" & ".xls"
End Sub
Würde es vielleicht auch gehen, dass man das Worksheet als PDF im richtigen Druckberreich (A1:H20) versendet?
Schöne Grüße

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blatt als PDF versenden
05.09.2020 09:48:40
mumpel
Hallo!
Stichwort: Application.DisplayAlerts
Aber weshalb xls? Nimm einfach xlsx oder xlsm. Dann brauchst DU Dich auch nicht um Fehlermeldungen kümmern.
Was das PDF betrifft, da kannst Du Dich an printout orientieren ActiveSheet.Range("A1:H20").ExportAsFixedFormat
AW: Blatt als PDF versenden
05.09.2020 10:35:30
fcs
Hallo Blume,
ich hab dein Makro mal etwas aufgeräumt und Zeilen ergänzt, die die Meldungen unterdrücken sollten (ungetestet)
Zusätzlich eine Variante, die ein PDF des vorgegebenen Zellbereichs erstellt.
LG
Franz
Sub Blatt_versenden()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String, wksMail As Worksheet
Sheets("Infoblattversenden").Select
Cells.Select
Selection.Copy
Workbooks.Add
Range("A1").Select
ActiveSheet.Paste
Columns("J:L").EntireColumn.AutoFit
Columns("O:O").EntireColumn.AutoFit
Range("A1").Select
Columns("P:P").NumberFormat = "m/d/yyyy"
Range("A1").Select
AWS = Environ("UserProfile") & "\Desktop\" & Format(Date, "YYMMDD") & "_" _
& Range("C6") & "_Test123" & ".xls"
Application.DisplayAlerts = False
Application.Calculate
ActiveWorkbook.SaveAs AWS, FileFormat:=xlExcel8
Application.DisplayAlerts = True
Application.Visible = True
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = Range("C18")
.CC = ""
.Subject = "Test123" & Date & " " & Time
.Attachments.Add AWS
.Body = "Liebes Team der " & Range("C6") & _
",  anbei erhalten Sie das Informationsblatt. Viele Grüße" & Range("B3") & vbCrLf & ""
.Send
End With
Set OutApp = Nothing
Set Nachricht = Nothing
ActiveWorkbook.Close
Kill AWS
End Sub
Sub Blatt_versenden_PDF()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String, wksMail As Worksheet
Dim print_Range_old As String
Set wksMail = ActiveWorkbook.Sheets("Infoblattversenden")
With wksMail
.Range("A1").Select
AWS = Environ("UserProfile") & "\Desktop\" & Format(Date, "YYMMDD") & "_" _
& .Range("C6") & "_Test123" & ".PDF"
print_Range_old = .PageSetup.PrintArea
.PageSetup.PrintArea = "$A$1:$H$20"
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=AWS, Quality:=xlQualityStandard, _
Ignoreprintareas:=False
.PageSetup.PrintArea = print_Range_old
End With
Application.Visible = True
Exit Sub
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = Range("C18")
.CC = ""
.Subject = "Test123" & Date & " " & Time
.Attachments.Add AWS
.Body = "Liebes Team der " & Range("C6") & _
",  anbei erhalten Sie das Informationsblatt. Viele Grüße" & Range("B3") & vbCrLf & ""
.Send
End With
Kill AWS
Set OutApp = Nothing
Set Nachricht = Nothing
End Sub

Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige