Excel VBA (Makro) Dateiname mit Zelle verknüpfen
#1
Hi, ich bräuchte eure Hilfe ^^

Und zwar hab ich eine Excel Datei erstellt und per VBA (Makro) eine Funktion hinzugefügt, der mir die Datei automatisch als PDF in eine Email Anhängt und gleichzeitig als PDF im Ordner abspeichert.

Mein Problem: ich will das der Dateiname, der in dem Ordner hinzugefügt wird mit einer Zelle verknüpft wird. Also wenn in Zelle A1 z.b. test123 steht, soll die Datei test123.pdf heißen.

Die Zelle A1 ist aber in einem anderen Tabellenblatt (z.b Tabellenblatt 2) und die Datei die gespeichert wird ist im Tabellenblatt 1.

Bis jetzt hab ich folgendes geschrieben:


Code:
Eigene()

ChDir "G:\, Huda\Neuer Ordner"

ActiveSheet.ExportAsFixedFormat Type:=x1TypePDF, Filename:= _
" G:\, Huda\Neuer Ordner \Datei.pdf", 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 = ActiveWorkbook.Sheets("Info für E-Mail").Cells(1, 2).Value

.Subject = ActiveWorkbook.Sheets("Info für E-Mail").Cells(3, 2).Value

.Body = ActiveWorkbook.Sheets("Info für E-Mail").Cells(2, 2).Value

myAttachments.Add " G:\, Huda\Neuer Ordner \Datei.pdf "

.Display
Top
#2
Hallo,

Code:
ActiveSheet.ExportAsFixedFormat Type:=x1TypePDF, Filename:= _
" G:\, Huda\Neuer Ordner \" & Worksheets(2).Range("A1").Text, OpenAfterPublish:=False
Gruß Stefan
Win 10 / Office 2016
Top
#3
Heart 
uii danke für die sau schnelle Antwort ^^

nachdem ich das eingegeben haben, fing er in der letzte Zeile an zu meckern.

und zwar bei

myAttachments.Add " G:\, Huda\Neuer Ordner \Datei.pdf "

--> Fehlermeldung: Der Dateiname ist nicht im Ordner zu finden und ich solle den Dateipfad prüfen :(
Top
#4
Hallo,

wenn Du es oben änderst, musst Du es unten genauso machen.

Code:
myAttachments.Add "G:\, Huda\Neuer Ordner \" & & Worksheets(2).Range("A1").Text & ".pdf"
Gruß Stefan
Win 10 / Office 2016
Top
#5
ohhh ja stimmt das werde ich dann gleich mal testen.

ne andere Frage:

was muss ich umändern, wenn ich ein anderes Tabellenblatt nehme?

Also bei der E-Mail Eigenschaft:
.To = ActiveWorkbook.Sheets("Info für E-Mail").Cells(1, 2).Value

.Subject = ActiveWorkbook.Sheets("Info für E-Mail").Cells(3, 2).Value

.Body = ActiveWorkbook.Sheets("Info für E-Mail").Cells(2, 2).Value

beziehe ich mich ja auf "Info für E-Mail", und bei der Formel von dir sehe ich keinen Bezug. Ist es das "Worksheets(2)"? sry für die Frage, bin ziemlich neu bei dem Zeug :(
Top
#6
Hallo,

(29.08.2019, 20:49)Huda schrieb: was muss ich umändern, wenn ich ein anderes Tabellenblatt nehme?

.Body = ActiveWorkbook.Sheets("Info für E-Mail").Cells(2, 2).Value

beziehe ich mich ja auf "Info für E-Mail", und bei der Formel von dir sehe ich keinen Bezug. Ist es das "Worksheets(2)"? sry für die Frage, bin ziemlich neu bei dem Zeug :(

wenn das Tabellenblatt "Info für E-Mail" das zweite in der Reihe ist, ja, denn ich habe mich bei meinen Vorschlag auf deine Aussage

Zitat:Die Zelle A1 ist aber in einem anderen Tabellenblatt (z.b Tabellenblatt 2) und die Datei die gespeichert wird ist im Tabellenblatt 1.

bezogen. Das du einen Tabellenblattnamen im Code hattest habe ich gar nicht gesehen. Wenn Du es abändern willst, bzw. für Dich besser verständlich ist, nimm den Tabellennamen.
Gruß Stefan
Win 10 / Office 2016
Top
#7
ah stimmt... das es sich auf das "zweite" Tabellenblatt bezieht hätte ich auch selbst drauf kommen können ^^ Danke für deine Hilfe
Top


Gehe zu:


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