Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
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
Datei als xls versenden
06.12.2019 20:26:55
Daniel
Hallo ihr Profis
Ich komme mit einem für euch wahrscheinlich banalen Problem zu euch.
Wie ich eine Datei als PDF versende habe ich, doch wie muss ich den Code anpassen, damit ich die Datei als xls versenden kann? Die Datei wird ohne Outlook versandt und im PDF-Format klappt das auch einwandfrei.
'Datei für Anlage erstellen
strTmpFile = ThisWorkbook.Path
If Right$(strTmpFile, 1) "\" Then strTmpFile = strTmpFile & "\"
ChDrive strTmpFile
ChDir strTmpFile
'File Name für Nachricht
strTmpFile = strTmpFile & "Mail_" & _
Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".")) & "pdf" '### fcs
'evtl. löschen falls vorhanden
If Dir(strTmpFile, vbNormal) "" Then Kill strTmpFile
'Datei als PDF speichern
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strTmpFile, _
Quality:=xlQualityStandard, Includedocproperties:=True, _
IgnorePrintareas:=False, Openafterpublish:=False

Ich hab schon versucht die PDF's in XLS zu ändern, doch die Datei wird dann einfach als .xls.pdf zwischengespeichert.
Meine bescheidenen VBA Kenntnisse reichen da leider nicht aus und im Netz wurde ich (mit meinen VBA Kenntnissen) leider nicht fündig. Aber ich weiss, dass Ihr mir helfen könnte :-)
Danke schon im Voraus für eure Hilfe
Liebe Grüsse aus der schönen Schweiz
Daniel

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei als xls versenden
07.12.2019 08:32:52
Beverly
Hi Daniel,
benutze einfach mal den Makrorekorder, während du eine Mappe als xls speicherst - dann werden alle erforderlichen Parameter aufgezeichnet, die du verwenden musst.


AW: Datei als xls versenden
09.12.2019 11:20:48
Daniel
Hallo Karin
Vielen Dank für Deine Antwort. Ich habe das Speichern mal mit Makro aufgezeichnet, doch da wird mir auch der Speicherpfad mitgeschrieben. Auch wenn ich den weg lasse wird meine Datei immer noch als *.xls.pdf als Anhang gemacht.
Da ich ja Makros im Hintergrund habe, müsste ich wohl auf das Format xlsm ändern. Die Datei wird vom Empfänger bei Bedarf noch geändert und genau darum muss sie als xlsm versandt werden und nicht als pdf.
Hier noch den gesammten Code, den ich verwende um die Datei als pdf zu versenden.
Wie gesagt, belaufen sich meine VBA Kenntnisse auf einem bescheidenen Niveau und ohne Eure/Deine Hilfe würde ich das nicht hinkriegen. Ich bin mir aber auch bewusst, dass auch der Forum-User etwas dazu beitragen sollte und die Lösung nicht immer "Pfannenfertig" serviert werden muss (Smile). Meine Recherchen im Netz, gepaart mit meinen Kenntnissen sind da leider schon völlig am Anschlag...

Sub Senden_Ohne_Outlook()
Dim iNachricht As Object, iKonfiguration As Object, Felder As Variant
Dim strMailAdress$, strKennwort$, strTmpFile$
AB = "mail@mail.com"
strMailAdress = "meinemail@mail.com"   '"Deine E-Mail-Adresse"
strKennwort = "1234"            'Passwort angeben
'Datei für Anlage erstellen
strTmpFile = ThisWorkbook.Path
If Right$(strTmpFile, 1)  "\" Then strTmpFile = strTmpFile & "\"
ChDrive strTmpFile
ChDir strTmpFile
'File Name für Nachricht
strTmpFile = strTmpFile & "Mail_" & _
Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".")) & "pdf"  'wenn ich das pdf durch  _
xlsm ersetze klappts bis hier hin
'evtl. löschen falls vorhanden
If Dir(strTmpFile, vbNormal)  "" Then Kill strTmpFile
'Ab hier wird aus der xlsm Datei wieder eine pdf Datei
'Datei als PDF speichern
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strTmpFile, _
Quality:=xlQualityStandard, Includedocproperties:=True, _
IgnorePrintareas:=False, Openafterpublish:=False                     '### fcs
Set iNachricht = CreateObject("CDO.Message")
Set iKonfiguration = CreateObject("CDO.Configuration")
iKonfiguration.Load -1
Set Felder = iKonfiguration.Fields
With Felder
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = strMailAdress
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = strKennwort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" ' _
Postausgangsserver
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 'SMTP-Port
.Item("http://schemas.microsoft.com/cdo/configuration/smtpservertimeout") = 60 'Timeout
.Update
End With
With iNachricht
Set .Configuration = iKonfiguration
.To = "empfaenger@mail.com"     'Empfänger
.CC = ""                               'Zur Kenntnis
.BCC = ""                              '.BCC nicht sichtbare Empfänger
.Sender = strMailAdress                'Von
.Subject = "Rapport"                   'Betreffzeile
.TextBody = "Im Anhang ist der Rapport" & Chr(13) & Chr(13) & "Mit freundlichen Grüssen" &  _
Chr(10) & _
VN 'Nachricht
.AddAttachment strTmpFile              'Anlage
.Send
End With
'Datei wieder löschen
If Dir(strTmpFile, vbNormal)  "" Then Kill strTmpFile
End Sub


Nochmals vielen Dank für Eure Zeit die Ihr euch nehmt und uns "VBA-Dummies" aus der Patsche helft...
Liebe Grüsse aus der schönen Schweiz
Daniel
Anzeige
AW: Datei als xls versenden
09.12.2019 12:14:47
Pierre
Hallo Daniel,
wenn du die Datei nicht als PDF speichern bzw. versenden willst, darfst du die auch nicht so zwischenspeichern, sondern als xlsm.
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strTmpFile, _
Quality:=xlQualityStandard, Includedocproperties:=True, _
IgnorePrintareas:=False, Openafterpublish:=False                     '### fcs
Der Teil sollte denke ich raus bzw. so geändert werden, dass am Ende auch eine xlsm dabei raus kommt.
Der Rekorder spuckt folgendes zum Format aus:
FileFormat:=xlOpenXMLWorkbookMacroEnabled
Vielleicht hilft das bereits etwas weiter.
Gruß Pierre
Anzeige
AW: Datei als xls versenden
09.12.2019 14:30:31
Beverly
Hi Daniel,
und wie sieht dein Code aus, den du mit dem Makrorekorder aufgezeichent hast?
In deinem bisherigen Code steht doch als Kommentar drin, in welcher Zeile die Mappe als PDF-exportiert wird - diese musst du quasi durch deinen aufgezeichneten Code ersetzen, wobei du diesen natürlich noch etwas anpassen musst.


AW: Datei als xls versenden
15.12.2019 19:18:54
Daniel
Hallo Karin
Nach einigen Versuchen habe ich es doch noch hingekriegt.
'Datei für Anlage erstellen
strTmpFile = ThisWorkbook.Path
If Right$(strTmpFile, 1) "\" Then strTmpFile = strTmpFile & "\"
ChDrive strTmpFile
ChDir strTmpFile
'File Name für Nachricht
strTmpFile = strTmpFile & Lieg & ThisWorkbook.Name
'evtl. löschen fals vorhanden
If Dir(strTmpFile, vbNormal) "" Then Kill strTmpFile
'eine kopie der Datei speichern
ThisWorkbook.SaveCopyAs strTmpFile

Damit klappts nun genau so wie ich es wollte.
Danke für eure/Deine Hilfe
Liebe Grüsse aus der schönen Schweiz
Daniel
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige