1. Ich versuche alle eingeblendeten Blätter einer Excel-Arbeitsmappe am Speicherort der Excel-Arbeitsmappe als .pdf Datei abzuspeichern, per Marko (Button 1)
2. Gleiche wie 1., nur das die .pdf zusätzlich an ein email angehängt wird Outlook (Button 2)
Meine EXCEL Datei
Meine Datei Besteht aus bis zu 45 Tabellenblättern , die man jedoch individuell ein und ausblenden kann, je nach dem was man für ein bevorstehendes Projekt benötigt. Auch kann man per Makro bereits die xcel Datei versenden, bzw die eingeblendeten Blätter ausdrucken.
Auch wenn ich nun schon einige Schnipsel zusammen habe für mein Vorhaben, kann ich sie irgendwie nicht zusammenbringen.
Ich freu mich sehr wenn mir jemand behilflich ist.
With ThisWorkbook For lngC = 2 To .Worksheets.Count If .Worksheets(lngC).Visible Then .Worksheets(lngC).Copy ActiveWorkbook.ExportAsFixedFormat xlTypePDF, .Worksheets(lngC).Name ActiveWorkbook.Close False End If Next lngC End With End Sub
Gruß Stefan Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28 • davincy81
07.12.2016, 16:12 (Dieser Beitrag wurde zuletzt bearbeitet: 07.12.2016, 16:12 von davincy81.)
(07.12.2016, 13:50)Käpt schrieb: Hallo,
... und Du glaubst wirklich, daß Dir jemand aufgrund Deines wunderschönen bunten Bildchens helfen kann oder auch nur helfen will?
Hallo Herr Blaubär,
Ihre Frage ist wohl durch den Poster nach Ihnen in ausreichender Form beantwortet.
Den Zusammenhang mit dem Screenshot erkenne ich auch nicht so recht. Soll das Sarkasmus sein oder so? Der dient dazu, die Hintergründe meines Vorhabens zu veranschaulichen. Was gibts damit für ein Problem?
Ich bitte um Hilfe anhand meiner Anfrage in meinem Post und nicht aufgrund des Sceenshots im Anhang.
--- Offtopic: Und da sie es so nett vormachen, hier auch eine kleine persönliche Note: Wenn man nen Scheiss Tag hat sollte man mal unter Deck bleiben! ---
Hallo Steffl
vielen Dank für den Ansatz. Ich werde das mal testen und gebe dann gern Feedback hier. (sofern noch möglich)
(07.12.2016, 16:12)davincy81 schrieb: Den Zusammenhang mit dem Screenshot erkenne ich auch nicht so recht. Soll das Sarkasmus sein oder so? Der dient dazu, die Hintergründe meines Vorhabens zu veranschaulichen. Was gibts damit für ein Problem?
es war ein versteckter Hinweis darauf, die Datei anstelle eines Screenshots zur Verfügung zu stellen, dann ist ein Hilfe einfacher möglich.
hier dazu ein Textbaustein, den ich als deutlicheren Hinweis immer verwende: Also stelle bitte (D)eine (Beispiel-)Tabelle als Excel-Datei zur Verfügung oder stelle die relevanten Ausschnitte hier dar, siehe die als Wichtige Themen: markierten Forums-Beiträge. Deine Mustertabelle sollte mindestens etwa 10-15 Datensätze haben, sensible Daten anonymisiert. Vom Aufbau her muss sie aber deinem Original gleichen. Auch ein Wunschergebnis sollte dargestellt und als solches erkennbar sein. Die farbigen Texte sind anklickbare Links:
Eine Bitte: Anstatt Screenshots ist eine Datei oder ein Ausschnitt besser! "Du gehst ja auch nicht in die Werkstatt und gibst ein Foto Deines kaputten Autos ab!"
Mich würde jetzt gerade z.B. das versenden per Mail interessieren. Kannst Du da bitte den Code dazu veröffentlichen?
Sub ExcelDateiSenden() Dim Nachricht As Object, OutApp As Object Set OutApp = CreateObject("Outlook.Application") Dim AWS As String 'Aktive Arbeitsmappe wird als Mail gesendet AWS = ThisWorkbook.FullName Set Nachricht = OutApp.CreateItem(0) With Nachricht .To = "xyz0@email.ch; xyz1@email.ch; xyz2@mokesa.ch" .Subject = "Betreff und Dateiname v1.0|2017| " & Date & "|" & Time .attachments.Add AWS .Body = "Im Anhang Die Datei" & vbCrLf & vbCrLf & "Mit freundlichen Grüssen" 'Hier wird die Mail nochmals angezeigt .Display 'Hier wird die Mail gleich in den Postausgang gelegt 'Mail.Send End With 'Outlook schliessen 'OutApp.Quit Set OutApp = Nothing Set Nachricht = Nothing End Sub
@Rabe,
danke für die Hinweise. Mit versteckten Hinweisen hab ich es eben nicht so.
oben der Code den ich aktuell für das versenden der excel Datei verwende. Ich habe bewusst einen genommen, den man noch bearbeiten kann vor dem versenden. Alternativ ginge auch das mail im Hintergrund ohne feedback zu verschicken.
@Steffl
habe deinen Code mal Probiert. Funktioniert auf jedem Fall. Jedes Tabellenblatt wird einzeln als .Pdf unter "Dokumente" gespeichert. Soweit sogut :19:
Wenn alle Tabellenblätter als ein einziges .pdf gespeichert werden, wäre es noch besser. Wobei ich aber mittlerweise Zweifel habe ob das überhaupt möglich ist.
12.12.2016, 10:03 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2016, 10:03 von RPP63.)
Moin!
Zitat:Wenn alle Tabellenblätter als ein einziges .pdf gespeichert werden, wäre es noch besser. Wobei ich aber mittlerweise Zweifel habe ob das überhaupt möglich ist.
Um es mal mit dem alten Toyota-Spruch zu sagen: Nichts ist unmööööglich ;) Du musst die Blätter in ein Array schreiben, dann wird alles in eine PDF geschrieben. Folgendes funktionierte in meinem Test (Rekordercode):
Code:
Sub RPP() Sheets(Array("Block", "Desktop")).Select Sheets("Block").Activate ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\RalfP\Desktop\Kalender.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True End Sub
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28 • davincy81
So, dass Ganze noch einmal gemäß Deines Wunsches in der Threaderöffnung "in schön", sprich professionell:
Sub RPP()
Dim arrSheets()
Dim wks As Worksheet, cnt AsInteger
Application.ScreenUpdating = False'sichtbare Tabellenblätter werden in ein Array geschrieben ForEach wks In Worksheets
If wks.Visible ThenRedimPreserve arrSheets(0To cnt)
arrSheets(cnt) = wks.Name
cnt = cnt + 1EndIfNext'Die Blätter werden in eine temporäre Mappe kopiert
ThisWorkbook.Sheets(arrSheets).Copy
With ActiveWorkbook
.ExportAsFixedFormat xlTypePDF, .Path & "MeinePDF"'temporäre Mappe wird geschlossen ohne zu speichern
.Close FalseEndWithEndSub
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28 • davincy81