PDA

Vollständige Version anzeigen : Makro - Datei mit variablem Namen speichern


Isus90
31.07.2017, 20:18
Guten Abend allerseits,

ich habe mich hier angemeldet, weil ich einfach nicht mehr weiter mit meinem Makro weiß. Ich habe davon eigentlich keine Ahnung (habe mir nur im Internet Sachen zusammen gesucht) und hoffe, dass mir hier jemand weiter helfen kann.

Was es können soll: Es geht um ein Formular für Rücksendungen von Kunden, das einmal ausgefüllt in einem eigenen Ordner nach dem Schema "Rücksendung_Kundenname" abgespeichert und auch per Mail an eine Person geschickt werden soll, die sich weiter um die Bearbeitung kümmert. Der Kundenname steht in einer Zelle im Reiter "Formular". Zuerst war gedacht auch noch das Datum mit aufzunehmen, das muss aber eigentlich nicht.

Es hängt bei mir daran, dass ich es einfach nicht hinbekomme die Datei mit dem variablen Kundennamen abzuspeichern :/

Hier ist was ich soweit habe:

Sub PDFundSenden()
ChDir "F:dokumentePDFCRM"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"F:dokumentePDFCRMRücksendungPDF.pdf"& Format(Now, "YYYY.MM.DD - hh.mm") & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Dim Outlook As Object
Dim OutlookMailItem As Object
Dim myAttachments As Object

Set OutlookApp = CreateObject("outlook.application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
Set myAttachments = OutlookMailItem.Attachments

With OutlookMailItem
.to = "XXXXXX@XXXXXX.de"
.Subject = "Rücksendung vom " & Date & Time (hier sollte eigentlich besser Rücksendung von + Kundenname stehen)
.Body = "Eine neue Rücksendung ist eingetroffen. Bitte bearbeiten."
myAttachments.Add "F:dokumentePDFCRMRücksendung.pdf" & Format(Now, "YYYY.MM.DD - hh.mm") & ".pdf"
'.Display
.send

End With

Set OutlookApp = nothing
Set OutlookMailItem = nothing

End Sub


Für euch ist das wahrscheinlich kinderleicht, aber ich hab davon wirklich keine Ahnung...

Isus90
01.08.2017, 08:59
Kann mir keiner helfen?

Es ist leider recht drigend... :(

markusxy
01.08.2017, 10:36
Es ist halt schwer jemandem zu helfen, der behauptet keine Ahnung zu haben.
Das Forum ist für ambitionierte Laien gedacht, die die Basics kennen.


Und welches Problem hast du konkret?
Geht es um den Formularbezug, oder darum den Pfad zusammenzusetzen?
Du hast ja keinen Bezug auf das Formular im Code.

Isus90
01.08.2017, 14:13
Danke für deine Rückmeldung. Ich denke ich habe es jetzt soweit hinbekommen, nur leider fragt mich Outlook vor dem Versenden, ob ich dem Makro erlaube die Mail zu senden.

Kann man die Nachricht umgehen, so dass die Mail ohne Nachfrage gesendet wird?

Sub Speichern_und_Senden()

ChDir "F:dokumentePDFCRMRücksendungen"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"F:dokumentePDFCRMRücksendungenRücksendung_" & Range("M16") & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Dim Outlook As Object
Dim OutlookMailItem As Object
Dim myAttachments As Object

Set OutlookApp = CreateObject("outlook.application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
Set myAttachments = OutlookMailItem.Attachments

With OutlookMailItem
.to = "XXXXXX@XXXXXXX.de"
.Subject = "Neue Rücksendung von " & Range("M16").Value
.Body = "Eine neue Rücksendung ist eingetroffen. Bitte bearbeiten."
myAttachments.Add "F:dokumentePDFCRMRücksendungenRücksendung_" & Range("M16") & ".pdf"
'.Display
.send

End With

Set OutlookApp = Nothing
Set OutlookMailItem = Nothing


End Sub

markusxy
01.08.2017, 15:28
Die Sicherheitsfrage kann man nicht so einfach umgehen.

Eine Lösung bietet Redemtion (http://www.dimastr.com/redemption/home.htm).
Aber da sollte man die Basics des Programmierens schon hinter sich haben.
Oder einfach das Mail anzeigen und selbst versenden.

LG Markus

Isus90
01.08.2017, 16:22
Alles klar, trotzdem danke!