Beim Ausdruck / Speichern als PDF soll Tabellenname als Speichername angeboten werden
#1
Hallo,

durch eure Hilfe wurde ja folgendes Makro erstellt, welches bei Auswahl die festgelegten Tabellenblätter mit nur einem Klick ausdruckt.

http://www.clever-excel-forum.de/Thread-...rksolved=1

Nun nutze ich aber meistens keinen Papierausdruck, sondern speichere diese per PDF Drucker ab. Man kann die Tabellenbläter auch direkt per "Speichern unter" als PDF in Excel abspeichern.

Ist es möglich das als Speichername der des Tabellenblatt verwendet wird? Ist das möglich mit einzubauen?

Gruß Daniel
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Top
#2
Hi,

warum nicht gleich über VBA die PDF ablegen?


so in der Art: xxxxx und Pfad natürlich anpassen!

Code:
        Sheets("xxxxxx").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\temp\" & "RN" & Sheets("xxxxxx").Range("XXXX").value, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=false
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • Daniel Albert
Top
#3
Ohh ging aber schnell, gerade getestet funktioniert schon einmal. Ich kann doch auch die Pfadabfrage dort integrieren oder ? Denn der Pfad ändert sich des öfteren

Dann muss ich nur noch schauen wie ich es in das andere Makro integrieren kann
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Top
#4
Guten Morgen,

habe jetzt versucht mal das bestehende Makro mit dem neuen kombiniert bekomme aber einen Laufzeitfehler 438 :(


Code:
Sub PDF()
Dim k#
For k = 22 To 37
If Worksheets("Kunden").Cells(k, 13).Text = "x" Then _
 Sheets(Tabelle1.Cells(k, 12).Text).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
       "F:\Downloads\" & Sheets(Tabelle1.Cells(k, 12).Text), Quality:=xlQualityStandard, _
       IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Next
End Sub
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Top
#5
Hallo Daniel,

ich habe in der Hilfe nach der ExportAsFixedFormat-Methode gesucht, da steht in der Erklärung

Zitat:Ausdruck.ExportAsFixedFormat(Type, Filename, Quality, IncludeDocProperties, IgnorePrintAreas, From, To, OpenAfterPublish)

Ausdruck   Eine Variable, die ein Range-Objekt darstellt.

Du hast aber ein Sheet-Objekt daher dieser Fehler. Versuchs mal so

Code:
Sub PDF()
Dim k As Long
For k = 22 To 37
If Worksheets("Kunden").Cells(k, 13).Text = "x" Then _
 Sheets(Tabelle1.Cells(k, 12).Text).UsedRange.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
       "F:\Downloads\" & Sheets(Tabelle1.Cells(k, 12).Text), Quality:=xlQualityStandard, _
       IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Next
End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Daniel Albert
Top
#6
Servus, also er erkennt schon mal das x und setzt die Zeile auch in die Variable aber ich erhalte noch eine Fehlermeldung

Laufzeitfehler 438
Objekt unterstützt diese Eigenschaft oder Methode nicht
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Top
#7
Hallo Daniel,

mit meiner letzten Antwort mit dem nicht passenden Objekt lag ich falsch. Die Methode gibt es auch für das Sheet-Objekt. Welchen Wert hat die Variable K wenn der Fehler auftaucht? Welchen Inhalt hat die Zelle? Und könnte es nicht daran liegen, wie Ralf (RPP63) hier in einem Thread von dir vermutet, dass das Blatt leer ist?
Gruß Stefan
Win 10 / Office 2016
Top
#8
Guten Morgen,

nein die Tabellen sind voll. Das Problem von damals habe ich schon lösen können. Das damals erstellte Makro um eine Auswahl der zu druckenden Arbeitsblätter zu erleichtern funktioniert einwandfrei. Nur kommt es bei mir auch häufig vor, dass ich diese Arbeitsblätter nicht ausdrucke sondern als PDF ablege. Ich kann zwar einen virtuellen PDF Drucker auswählen, nur wird der Name vom Arbeitsblatt nicht übertragen sondern jedes PDF Dokument hat den gleichen Namen. Somit muss ich diese zuerst einen Zwischennamen geben damit diese nciht überschrieben werden und dann jedes einzeln öffnen schauen welches Arbeitsblatt es ist und dann den Namen vergeben.

Daher dachte ich mir dies mit dem bestehenden Makro quasi aufzubessern.

Ich habe aber einen großen Fehler gemacht. Ich habe zuerst die Frage in den alten Thread gestellt und dann festgestellt, dass diese Frage eigentlich nichts mehr mit dem vorherigen Thema zu tun hat. Nun arbeitest du an dem Problem und im anderen Thread auch welche - BLÖD

Sorry da war ich ein wenig zu schnell. Ich schaue mir das Makro gleich nochmal an und würde dann hier das Urmakro aus dem anderen Thread und mein zusammengebasteltes einfügen

Gruß Daniel
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Top
#9
So hier einmal das Urmakro mit einigen Erweiterungen:


Code:
Sub Drucken()
Call ausblenden_BU
Call ausblenden_Arbeitnehmersparzulage
Call ausblenden_Wohnungsbauprämie
Call ausblenden_Investment
Call ausblenden_Du_Soldaten
Call ausblenden_Du_Soldaten_1
Call ausblenden_GF
Call ausblenden_EU

Dim k#
For k = 22 To 37
If Worksheets("Kunden").Cells(k, 13).Text = "x" Then _
  Sheets(Tabelle1.Cells(k, 12).Text).PrintOut
Next
End Sub


Die Makros "ausblenden...." Prüfen in den Arbeitsblättern ob Inhalt vorhanden ist - wenn ja bleibt das Diagramm sichtbar, wenn nicht wird es ausgeblendet, damit auf der Rückseite nicht das Diagramm sichtbar ist wenn keine Daten vorhanden sind.

Hier das aktuell was noch nicht funktioniert

Code:
Sub SaveAsPDF()
Dim varFilename As Variant

Dim k As Long
For k = 22 To 37
If Worksheets("Kunden").Cells(k, 13).Text = "x" Then _
Sheets (Tabelle1.Cells(k, 12).Text)

varFilename = Application.GetSaveAsFilename( _
InitialFileName:="Meine.pdf", _
FileFilter:="PDF (*.pdf), *.pdf", _
Title:="als PDF speichern")

If varFilename <> False Then
ThisWorkbook.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=varFilename
End If
Next
End Sub
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Top
#10
So weiter gehts - Aktueller Stand:


Code:
Sub SaveAsPDF()
Dim varFilename As Variant
Dim InitialFileName As Variant

Dim k As Long
For k = 22 To 37
If Worksheets("Kunden").Cells(k, 13).Text = "x" Then _
Worksheets("Kunden").Cells(k, 12).Text

InitialFileName = Worksheets("Kunden").Cells(k, 12).Text
varFilename = Application.GetSaveAsFilename( _
InitialFileName = Worksheets("Kunden").Cells(k, 12).Text _
& ".pdf")

'FileFilter:="PDF (*.pdf), *.pdf", _
'Title:="als PDF speichern")

If varFilename <> False Then
ThisWorkbook.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=varFilename
End If
Next
End Sub


Folgendes steht in den Variablen:

varfilename = Leer
Initialfilename = "Rücklagen"
k = 22

Es wird der Speicherdialog geöffent aber es steht dort als Speichername "False"

Ich verstehe es noch nicht so richtig für was ich varfilename brauche
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Top


Gehe zu:


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