Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1728to1732
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
Inhaltsverzeichnis

pdf Versand per VBA - pdf Dateibenennung?

pdf Versand per VBA - pdf Dateibenennung?
18.12.2019 14:05:38
Lukas
Hallo zusammen,
ich habe eine Datei, in welcher per Schaltfläche (Formularelemente) ein Knopf eingebaut ist, der ein Makro ausführt, zum konvertieren der Datei in pdf und automatischer Erstellung einer Mail mit der pdf Datei als Anhang. Geht alles wunderbar, habe mir die Infos hier im Forum und sonst wo auf Google gesucht, jedoch habe ich Probleme, die pdf Datei automatisch umbenennen zu lassen. Ich füge mal meinen Code ein:
Sub Schaltfläche10_Klicken()
'** Dimensionierung der Variablen
Dim strPDF As String
Dim OutlookApp As Object, strEmail As Object
'** Vorgaben definieren
Set OutlookApp = CreateObject("Outlook.Application")
Set strEmail = OutlookApp.CreateItem(0)
'** PDF erzeugen
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Montagecheckliste, Quality:= _
xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'** E-Mail versenden
strPDF = ThisWorkbook.Path & "\Montagecheckliste.pdf"
With strEmail
.Subject = "Montagecheckliste für Auftrag" 'Betreffzeile
.body = "Guten Tag, anbei die Montagecheckliste für oben genannten Auftrag. Schöne Grüße"
.Attachments.Add strPDF
.Display
'.Send 'Damit wir die E-Mail sofort versendet
Kill strPDF
End With
'** Objektvariablen wieder löschen
Set OutlookApp = Nothing
Set strEmail = Nothing
End Sub
ich bin jetzt so weit gekommen, dass die Datei "Montagecheckliste" heißt, dazu muss man das je an zwei Stellen ändern sonst kommt ein Fehler.
Ich hätte nun aber gerne als Zusatz, dass zum "Montagecheckliste" auch noch eine Auftragsnummer - das ist B4 in meiner Mappe - dazugefügt wird. Ich schaffs mit meinen laienhaften VBA Kenntnissen nicht, fand auch bei Google nichts. Vermutlich muss man nur die richtige Anführungszeichen und "und-Zeichen" Kombi eingeben, und dann eben dieser Zusatz: ActiveSheet.Range("B4")
Vielleicht könnt ihr mir helfen wie ich das korrekt umsetze, gerne bei Bedarf auch ein ganz neuer Code.
Besten Dank
lg Lukas

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: pdf Versand per VBA - pdf Dateibenennung?
18.12.2019 14:25:20
ede
Hallo zurück,
versuch mal so:

'** PDF erzeugen
strPDF = ThisWorkbook.Path & "\Montagecheckliste" & ActiveSheet.Range("B4") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPDF, Quality:= _
xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'** E-Mail versenden
'strPDF = ThisWorkbook.Path & "\Montagecheckliste.pdf"
Gruss
ede
AW: pdf Versand per VBA - pdf Dateibenennung?
18.12.2019 14:31:30
volti
Hallo Lukas,
ich würde den vollständiges Pfad/Datei ziemlich weit oben in der Variablen strPDF zusammensetzen (s.Code)
Weiter hinten kann das dann weg...
Sub Schaltfläche10_Klicken()
'** Dimensionierung der Variablen
Dim strPDF As String
Dim OutlookApp As Object, strEmail As Object
strPDF = ThisWorkbook.Path & "\Monatscheckliste_" & ActiveSheet.Range("$B$4" _
).Value & ".PDF"
'** Vorgaben definieren
Set OutlookApp = CreateObject("Outlook.Application")
Set strEmail = OutlookApp.CreateItem(0)
'** PDF erzeugen
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPDF _
, Quality:= _
xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'** E-Mail versenden
With strEmail
.Subject = "Montagecheckliste für Auftrag" 'Betreffzeile
.body = "Guten Tag, anbei die Montagecheckliste für oben genannten Auftrag. Schöne Grüße"
.Attachments.Add strPDF
.Display
'.Send 'Damit wir die E-Mail sofort versendet
Kill strPDF
End With
'** Objektvariablen wieder löschen
Set OutlookApp = Nothing
Set strEmail = Nothing
End Sub
PS: Noch ein Tipp. strEmail würde ich z.B. oEmail nennen, denn das ist ja kein String, sondern ein Objekt.
viele Grüße
Karl-Heinz
Anzeige
AW: pdf Versand per VBA - pdf Dateibenennung?
18.12.2019 14:56:26
Lukas
Hallo Karl-Heinz,
danke für die rasche Antwort, habe den Code jetzt entsprechend umgebaut, jedoch funktioniert das immer noch nicht, ich habe jetzt "Montagecheckliste_" also um "_Underline" ergänzt. aber die Auftragsnummer fehlt noch. Vielleicht ist dir mit den ganzen Zeichen irgendwo ein Fehler passiert? :) Danke schon mal.
lg Lukas
AW: pdf Versand per VBA - pdf Dateibenennung?
18.12.2019 15:22:37
volti
Hallo Lukas,
es wird erwartet, dass die Auftragsnummer im aktiven Blatt in Zelle $B$4 steht, so wie von Dir vorgegeben. Ist diese Zelle evtl. leer oder ein anderes Blatt als das gerade aktive gemeint?
Falls das Blatt bekannt und immer das gleiche ist, solltest Du vielleicht eher dieses hier nehmen:
strPDF = ThisWorkbook.Path & "\Monatscheckliste_" & ThisWorkbook.Sheets("MeinBlatt").Range("$B$4" _
).Value & ".PDF"

Und "MeinBlatt" natürlich anpassen...
VG KH
Anzeige
AW: pdf Versand per VBA - pdf Dateibenennung?
19.12.2019 07:39:46
Lukas
Guten Morgen KH,
so das ist mir nun echt mega peinlich, ich bin vl ein Depp... wie du schon schreibst, sollte in dem Feld natürlich auch eine Nummer drin stehen :) funktioniert jetzt tadellos, der Code mit Active sheet passt natürlich so, das habe ich mir im Vorfeld schon alles angesehen.
Hätte jetzt aber gleich noch eine Frage, da die Mappe jetzt um Namen erweitert wird, ich werde mittels sverweis auf den Namen ein Feld machen, wo dann die Mailadresse dazu erscheint. Kann ich die auch gleich per Code einbauen, dass die Mailadresse gleich im Mail Entwurf drin steht?
LG Lukas
AW: pdf Versand per VBA - pdf Dateibenennung?
19.12.2019 08:46:42
Pierre
Hallo Lukas,
sollte recht simpel so funktionieren:
.to = Sheets("DEINETABELLE").Range("ZELLE").Value
Blattname und Zelle anpassen.
Gruß Pierre
Anzeige
AW: pdf Versand per VBA - pdf Dateibenennung?
19.12.2019 10:25:58
Lukas
besten dank funktioniert super :)
danke für die schnelle Hilfe, und frohe Feiertage!
bitteschön und dir auch schöne Feiertage! (owT)
19.12.2019 10:49:56
Pierre
AW: bitteschön und dir auch schöne Feiertage! (owT)
19.12.2019 15:01:18
Lukas
so sorry ich muss nochmals lästig sein... die pdf Datei Benennung soll jetzt doch nur die Auftragsnummer aus der Mappe enthalten, sonst nichts. Aktuell steht da:
strPDF = ThisWorkbook.Path & ActiveSheet.Range("B4" _
).Value & ".PDF"
wobei B4 das gewünschte Feld ist, Activesheet passt auch.
lösche ich das "Thisworkbook.Path" funktioniert es gar nicht mehr. Ersetzen durch Text in "" auch nicht. gibts da auch eine einfache Lösung? :)
AW: bitteschön und dir auch schöne Feiertage! (owT)
19.12.2019 15:42:22
Werner
Hallo Lukas,
und warum willst du bitte ThisWorkbook.Path löschen? Das ist doch der Pfad in den deine PDF gespeichert wird.
strPDF = ThisWorkbook.Path & "\" & ActiveSheet.Range("B4").Value & ".PDF"
Gruß Werner
Anzeige
AW: bitteschön und dir auch schöne Feiertage! (owT)
19.12.2019 15:45:52
Lukas
Hallo Werner, konnte das jetzt selbst lösen, ich dachte das wäre für die Bezeichnung, dass der Speicherpfad die Bezeichnung wird (was ja auch so ist, aber was ich nicht wollte) und daher wollte ich das löschen, das klappt aber eh gar nicht.
nur dadurch bedingt, dass ich sonst keinen Dateinamen hab, hat er mir immer den Pfad als Namen dazu gegeben, habe es jetzt wie folgt abgeändert, jetzt passt es:
strPDF = ThisWorkbook.Path & "\" & ActiveSheet.Range("B4" _
).Value & " " & ActiveSheet.Range("B6" _
).Value & ".pdf"
dann schöne Weihnachten. o.w.T.
19.12.2019 15:49:13
Werner

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige