Sendmail ohne Outlook.Application
#1
Hallo Forumgemeinde.

Ich suche einen weg Emails aus Excel ohne Outlook zu versenden.

Logisch dass dieses dann nur per Application.Dialogs(xlDialogSendMail) funktioniert.

Einen Code habe ich, der auch soweit funzt, allerdings sendet er die gesamte Arbeitsmappe und nicht nur das Tabellenblatt PDF
Ebenso sendet er es nicht als Dateiname Format(Now, "DD-MM-YYYY") & "_Inventurliste.xlsx"

Mit der Outlook Funktion funzt es, allerdings gibt es ja noch menschen die kein Outlook besitzen und deshalb die Alternative.
Code:
Sub MailsendenTabellenblatt_oO()

Sheets("PDF").Visible = True

Sheets("PDF").Select

Dim mailto, subjekt As String
Dim AWS As String, wksMail As Worksheet

Set wksMail = Sheets("PDF") 'zu versendendes Blatt

AWS = Environ("USERPROFILE") & "\" & Format(Now, "DD-MM-YYYY") & "_Inventurliste.xlsx"
'temporäre Mappe erstellen
wksMail.Copy
With ActiveWorkbook
.SaveAs AWS
.Close
End With
'Application.Visible = True

mailto = Sheets("Einstellungen").Range("D16").Value  '"Mail@mail.de"  für mehrere Adressen trennen mit ; (Semikolon)
subjekt = "Neue Inventurliste vom " & Format(Now, "DD-MM-YYYY") 'Betreff
Application.Dialogs(xlDialogSendMail).Show mailto, subjekt

MsgBox "Die Datei " & """" & Format(Now, "DD-MM-YYYY") & "_Inventurliste.xlsx" & """" & " wurde an " & """" & Sheets("Einstellungen").Range("D16").Value & """" & " per Mail versandt.", vbInformation, "Emailversand"

Kill AWS 'temporäre Mappe löschen


End Sub

Genau den selben Code bräuchte ich, der das TB PDF als .pdf versendet.


Danke für Eure Unterstützung und noch einen schönen restlichen Feiertag.
Antworten Top
#2
Code:
Worksheets(TBName).Copy 

statt

Code:
wksMail.Copy
nehmen, wobei TBName der Name des zu kopierenden Blattes ist.
Antworten Top
#3
wksMail ist das zu kopierende Blatt.
Antworten Top
#4
Code:
wksMail.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"Environ("USERPROFILE") & "\" & Format(Now, "DD-MM-YYYY") & "_Inventurliste.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True

Dann halt so.
Antworten Top
#5
Wie eine .pdf erzeugt wird ist mir klar, nur kann ich die nicht direkt versenden.

Erstmal der reihe nach das TB "PDF" ohne Outlook versenden.
Antworten Top
#6
Hallo,
 
via Dialog SendMail wird der Standardmailer bemüht und im Anhang landet die Datei aus der der Dialog gestartet wurde.
schau und teste hier:
Code:
Sub DialogSendMail()
    Application.Dialogs(xlDialogSendMail).Show arg1:="test@test.de", arg2:="Ich sende die ExcelDatei aus er der diese Prozedur gestartet wurde"
End Sub

Gruß Uwe
Antworten Top
#7
" Wie eine .pdf erzeugt wird ist mir klar " ?
Ach was - echt ?
Warst nicht du es, der da schrieb: " allerdings sendet er die gesamte Arbeitsmappe und nicht nur das Tabellenblatt PDF " ???
Antworten Top
#8
Das Tabellenblatt heißt nur PDF!

Nur dass soll er ohne Outlook.Application als .xlsx versenden

Das gleiche nochmal ohne Outlook.Application als .pdf
Antworten Top
#9
Dass ist schon klar!

er soll aber den Dateinamen umschreiben zu: Format(Now, "DD-MM-YYYY") & "_Inventurliste.xlsx"

und so sendet er die komplette Mappe. Er soll aber nir das TB "PDF" senden!
Antworten Top
#10
Hallo,

wenn Du die temporäre Datei verschicken willst, musst Du sie auch solange geöffnet lassen. Wink

Ungetestet:
Code:
Sub MailsendenTabellenblatt_oO()
  Dim AWS As String, wksMail As Worksheet
  Dim mailto, subjekt As String

  AWS = Environ("USERPROFILE") & "\" & Format(Now, "DD-MM-YYYY") & "_Inventurliste.xlsx"
  Set wksMail = Sheets("PDF") 'zu versendendes Blatt
  mailto = Sheets("Einstellungen").Range("D16").Value  '"Mail@mail.de"  für mehrere Adressen trennen mit ; (Semikolon)
  subjekt = "Neue Inventurliste vom " & Format(Now, "DD-MM-YYYY") 'Betreff
  wksMail.Visible = True

  'temporäre Mappe erstellen
  wksMail.Copy
 
  With ActiveWorkbook
    .SaveAs AWS
    Application.Dialogs(xlDialogSendMail).Show mailto, subjekt
    .Close
  End With

  MsgBox "Die Datei " & """" & Dir(AWS) & """" & " wurde an " & """" & mailto & """" & " per Mail versandt.", vbInformation, "Emailversand"
  Kill AWS 'temporäre Mappe löschen
End Sub

Gruß, uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste