ich kapituliere schon wieder aufgrund meiner geringen VBA Kenntnisse an folgendem Problem:
Ich habe verschiedenste Exeldateien an unterschiedlichen Orten (SharePoints) liegen. In allen Dateien befindet sich eine SUB "Daten_aktualisieren", die beim Aufruf
Daten von einer Oracle_DB lädt und somit die "neuesten" Zahlen in der Datei zur Verfügung stehen.
Jetzt habe ich folgende Aufgabe ausgefasst. Ich soll die Dateien automatisiert aktualisieren lassen, den jeweiligen Druckbereich als pdf-Dokument speichern und in einer Email an bestimmte Personen versenden lassen. Die ursprünglichen Daten sollen weiterhin an den bekannten Orten liegen bleiben.
Ich habe mir eine neue Exceldatei erstellt und eine Sub geschrieben, die beim Start der Datei automatisch aufgerufen wird. Das Aktualisieren und Speichern nach der Aktualisierung klappt auch schon ohne Probleme. Ich kann auch schon eine Mail an eine Person versenden.
Aber ich bekomme es einfach nicht hin, den Druckbereich als pdf zu speichern und an die Mail zu hängen. Ich erstelle immer nur ein pdf der Datei, wo die "Aktualkisierungs"-SUB
läuft.
Kann mir jemand helfen?
Hier der verwendete Code:
Private Sub Workbook_Open()
Call Datei_oeffnen
End Sub
Sub Datei_oeffnen()
'erstellt ein Verzeichnis für das Kopieren und Ablegen der pdf-Dokumente
If Dir(ThisWorkbook.Path & "\Kopien_für_pdf-Versand", vbDirectory) = "" Then
MkDir ThisWorkbook.Path & "\Kopien_für_pdf-Versand"
End If
'Aktualisieren der Rohstoff-Kennzahlen
'Öffnen & Aktualisieren der Datei "Waggonübersicht voestalpine"
Workbooks.Open "https://team.voestalpine.net/site/770/RohstoffKennzahlen/Waggon%C3%BCbersicht%20voestalpine.xlsm"
'Application.Run "'Waggonübersicht voestalpine.xlsm'!Daten_aktualisieren"
'ActiveWorkbook.Save
'pdf-erstellen
'Application.DisplayAlerts = False
'Application.ScreenUpdating = False
'Tabelle1.PageSetup.PrintArea = "$A$1:$AG$38"
Stop
'ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Kopien_für_pdf-Versand\" & ActiveSheet.Name & ".xlsx"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\Kopien_für_pdf-Versand\" & "Waggonübersicht voestalpine.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Stop
'Application.ScreenUpdating = True
'Application.DisplayAlerts = True
ActiveWorkbook.Close
'Email versenden
Dim outObj As Object
Dim objMail As Object
Set objout = CreateObject("Outlook.Application")
Set objMail = objout.createitem(0)
objMail.Subject = "Waggonübersicht voestalpine wurde aktualisiert"
objMail.body = "Die Datei Waggonübersicht voestalpine auf dem SharePoint wurde aktualisiert und steht für die weitere Verwendung zur Verfügung."
objMail.to = "xxx.xxx@xxxxxxx.?"
objMail.send