Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

PDF per Mail Problem
#1
Hallo zusammen, 
ich habe folgendes Problem: 
Ich möchte eine PDF-Vorlage in Tabellenblatt 2 mit Daten aus Tabellenblatt 1 füllen, als PDF exportieren und per Mail verschicken. Das klappt soweit auch wie ich mir das vorstelle. 
Allerdings möchte ich das Spalte für Spalte wiederholen und das bekomme ich nicht hin.
 
Zur Erklärung:
In einer Zeile auf Tabellenblatt 1 stehen Daten die zu einer Person gehören. Diese kopiere ich in die Vorlage meiner PDF und versende sie an eine Mailadresse, die ich ebenfalls aus der Spalte zu dieser Person bekomme. 
Wenn deser Schritt abgeschlossen ist, soll allerdings die nächste Zeile automatisch starten, das bedeutet die Daten aus dem ersten Kopiervorgang sollen überschrieben und an eine andere Person versendet werden. Hier komme ich leider nicht weiter. 
Bisher arbeite ich hier mit einem aufgezeichneten Makro (kopieren) und einem Pdf per Email Makro, das ich mir so zusammen gesucht habe.

Wenn ich das richtig sehe, muss ich den Kopier-Makro dahingehend anpassen, dass er nicht stumpf die aufgezeichneten Schritte durchgeht, sondern dynamisch die Werte der Spalte überträgt, unabhängig von der Zeile, also immer Zeile für Zeile, nach dem Versenden der PDF Datei.
Ausserdem muss im Mail Makro ebenfalls die Mailadresse immer dynamisch aus der aktuell bearbeiteten Zeile verwendet werden. 

Kann mir hier jemand helfen? Bin noch sehr neu in der VBA Programmierung und nicht allzu versiert. 

Lg


Code:
Sub Kopieren()
'
' Kopieren Makro
   Range("AA2").Select
   Selection.Copy
   Sheets("Tabelle2").Select
   Range("B7").Select
   ActiveSheet.Paste
   Sheets("Tabelle1").Select
   Range("AB2").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Tabelle2").Select
   Range("C7").Select
   ActiveSheet.Paste
   Sheets("Tabelle1").Select
   Range("AC2").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Tabelle2").Select
   Range("D7").Select
   ActiveSheet.Paste

  Call PDF_per_EMail
End Sub

 
Code:
Sub PDF_per_EMail()

'** 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
Tabelle2.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
 ThisWorkbook.Path & "/Performance Report.pdf", Quality:=xlQualityStandard _
 , IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
 :=False

'** E-Mail versenden
strPDF = ThisWorkbook.Path & "/Performance Report.pdf"
With strEmail
 .To = Range("Tabelle1!H2")
 .BCC = Range("Tabelle1!I2")
 .Subject = "Performance Report" 'Betreffzeile
 .body = "Text"
 .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
Antworten Top
#2
Hallo,

wie ich das sehe, muss nur dein Kopier-Makro dynamisch gemacht werden!
Dazu eine Frage: Ist die Anzahl der Daten in der Spalte AA dynamisch oder gibt es eine feststehende Anzahl?


Code:
Sub Kopieren()
   Dim i As Long
'
' Kopieren Makro

   With Sheets("Tabelle1")
       For i = 2 to .Cells(Rows.Count, 27).End(xlUp).Row
            Sheets("Tabelle2").Range("B7:D7").ClearContents
           .Cells(i, 27).Copy Sheets("Tabelle2").Range("B7")
           .Cells(i, 28).Copy Sheets("Tabelle2").Range("C7")
           .Cells(i, 29).Copy Sheets("Tabelle2").Range("D7")
            Call PDF_per_EMail
       Next
   End With
End Sub

Momentan habe ich das auf dynamisch für die Spalte AA eingestellt und es werden alle Adressen ab Zeile 2 bis zur letzten gefüllten ausgelesen und als PDF-Mail versandt..
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top


Gehe zu:


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