Anzeige
Archiv - Navigation
1476to1480
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

eine pdf-datei speichern mit Namen aus einer Zelle

eine pdf-datei speichern mit Namen aus einer Zelle
21.02.2016 13:04:20
winfried
Leider haben meine bisherigen Nachforschungen und Anfragen nichts gebracht. ielleicht habe ich ja auch ungenau beschrieben. Also : das Problem ist, aus Excel heraus mit einem Makro eine pdf-Datei zu erstellen, deren Name in einer bestimmten Zelle der Excel-Datei steht. Dieser Inhalt/Name ist nicht immer gleich, sondern wechselt nach Bearbeitung der Excel-Datei.
Dieses hat mit abschliessender Speicherung als Excel-Datei mit eben diesem wechselnden Dateinamen geklappt, klappt aber bei meinen Versuchen nichts als pdf-Datei.
Bei der Excel lief es so:

Sub UnterNamenSpeichern()
Dim sFile As String, sPath As String
Verzeichnis = "E:\0 Daten\Excel\0 see\Vorjahre\"
sFile = Range("B6").Value & "_" & _
Range("B9").Value & ".xls"
End Sub

Vielleicht klappt es ja jetzt mit einer Antwort. Danke Winfried

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelt
21.02.2016 13:20:53
winfried
Was soll das ? Ich habe hier das Problem näher erläutert, weil ich mit Deinen kurzen, sich nur wiederholenden Antwortzen nun so garnichts anfangen konnte

such doch mal in RECHERCHE,Archivsuche-oT
21.02.2016 13:26:04
was

AW: such doch mal in RECHERCHE,Archivsuche-oT
21.02.2016 13:30:03
winfried
anständige Antworten mit realen Ergebnissen Angaben kannst Du wohl nicht. irgendwie nervt das, nur so allgemeinplätze

eigentlich nervst nur Du ! siehe Selbsthilfe....oT
21.02.2016 13:41:47
was

quält ihn doch nicht so
23.02.2016 17:15:37
Michael
Hi zusammen,
Winni, schau mal:
Sub Makro1()
' So wird es mit dem Rekorder aufgezeichnet:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\A_Herber\PDF_Speichern.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub
' und umgebaut für Deine Datei dann:
Sub UnterNamenSpeichern()
Dim sFile As String, sPath As String
sPath = "E:\0 Daten\Excel\0 see\Vorjahre\"
sFile = Range("B6").Value & "_" & _
Range("B9").Value & ".pdf"   ' pdf!
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=sPath & sFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False
' im Makro evtl. besser ohne open after publish
End Sub
Schöne Grüße,
Michael

Anzeige
AW: quält ihn doch nicht so
23.02.2016 18:22:51
winfried
Hallo, Michael, vielen lieben Dank für Deine Antwort, nach all dem Hin und Her, wonach ich eigentlich schon abgeschlossen hatte mit dem Thema.
Aber Deine Antwort gab mir wieder Mut.
Ich habe Dir mal das Ende meines Makros hier eingestellt. Es sind verschiedene Makros, die immer damit enden, diese Seite als pdf zu speichern mit dem Namen wie er in der Zelle U30 steht.
Weil diese Datei von verschiedenen Anwendern genutzt werden soll, die unterschiedliche Verzeichnisstrukturen haben hier ohne Pfadangabe, damit die pdf-Datei jeweilig in DEM Verzeichnis gespeichert wird, aus dem heraus die Exceldatei geöffnet wurde ( klappt mit anderen Programmen sehr gut)
Sheets("Tabelle").Select
Range("D2:S2").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
Application.Run "unternamenspeichern"
End Sub
Sub UnterNamenSpeichern()
Dim sFile As String
sFile = Range("u30").Value & ".pdf"   ' pdf!
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=sFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False
End Sub
Wenn ich das Makro so ablaufen lasse, bleibt es stehen und markiert den gesamten letzten Block.
Was mache ich falsch ?
Nun bin ich wieder voller Hoffnung. Vielen Dank im Voraus
Winni

Anzeige
AW: quält ihn doch nicht so
23.02.2016 20:45:08
Michael
Hi Winni,
schau mal:
' hier in Modul 1
Option Explicit
Sub bis_hierhin()
' die zwei folgenden Anweisungen machen schlicht
' nichts, außer in der Datei herumzuhüpfen
Sheets("Tabelle1").Select
'in Deinem Beispiel Tabelle ohne 1
Range("D2:S2").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
Call UnterNamenSpeichern(Sheets("Tabelle1"), "U30")
End Sub
Sub UnterNamenSpeichern(blatt As Worksheet, sfileZelle As String)
Dim sfile As String
sfile = ActiveWorkbook.Path & "\" & _
blatt.Range(sfileZelle).Value & ".pdf"
MsgBox sfile
blatt.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=sfile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False   ' das ist ggf. mit True zu ersetzen
End Sub
Die Sub UnterNamenSpeichern(blatt As Worksheet, sfileZelle As String) erwartet das Blatt als "Blatt", also nicht nur den Namen, sondern wie oben mit Sheets("Tabelle1"), während die zweite Angebabe reiner Text ist, also "U30" oder was immer Du benötigst: damit ist die Sub völlig variabel einsetzbar.
Ich liefere Dir die Datei mal mit: https://www.herber.de/bbs/user/103827.xlsm
Schöne Grüße,
Michael

Anzeige
AW: quält ihn doch nicht so
25.02.2016 13:03:43
winfried
Hallo, Michael, bitte entschuldige vielmals, aber ich bin 2 Tage nicht zu Hause gewesen, bin eben erst wieder an den PC gegangen.
Erstmal vielen vielen Dank für Deine konstruktive Hilfe. Sie unterscheidet sich doch sehr von anderen. Hiermit kann man wenigstens etwas anfangen.
Ich habe Deine Schritte bei mir eingefügt. Es läuft auch erst auch gut, der pdf-Dateiname soll bestätigt werden ( alles richtig aus der Zelle übernommen ), aber dann hackt es leider wieder.
Der letzte Block ab blatt.Exportasfixed.... ist beim Debuggen gelb unterlegt.
Weisst Du da Rat ? Hat es damit zu tun, dass nicht das ganze Tabellenblatt, sondern nur der als Druckbereich definierte Bereich als pdf gespeichert werden soll ?
Wäre toll, wenn es doch noch vollständig klappen kann, wenn man schon mal soweit ist.
Vielen Dank im Voraus
LG Winni
Application.CutCopyMode = False
ActiveWorkbook.Save
Call UnterNamenSpeichern(Sheets("Tabelle"), "U30")
End Sub
Sub UnterNamenSpeichern(blatt As Worksheet, sfileZelle As String)
Dim sfile As String
sfile = ActiveWorkbook.Path & "\" & _
blatt.Range(sfileZelle).Value & ".pdf"
MsgBox sfile
blatt.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=sfile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False
End Sub

Anzeige
schwer zu sagen
25.02.2016 17:35:43
Michael
Hi Winni,
also, das mit dem Druckbereich ist die unterste Zeile mit dem ignoreprintareas, zu gut deutsch: ignoriere den Druckbereich. Hm, muß ja dann eigentlich auf false stehen.
Zeichne das ganze als PDF speichern doch mal mit dem Makrorekorder auf und lade den Codeschnipsel hoch.
Vielleicht sehe ich da noch was, ansonsten müßte ich wohl die Original-Datei sehen - zur Not per mail, die siehst Du in meinem Profil.
Schöne Grüße,
Michael
P.S.: Heißt Dein Blatt wirklich nur "Tabelle" ohne Nr.? Aber daran kann es eigentlich auch nicht liegen, denn der Wert von U30 wird ja anscheinend brav eingelesen.
Hat meine Beispieldatei reibungslos funktioniert? So wie sie ist?

Anzeige
AW: schwer zu sagen
25.02.2016 17:51:25
winfried
Hallo Michael,
also Deine Datei hat einwandfrei funktoniert, hat den gesamten genutzten Bereich der Datei als pdf gespeichert.
Das Blatt heisst wirklich nur 'Tabelle'. Es geht hier um die Auswertung einer Fußballtipp-Runde.
Ich habe es mal aufgezeichnet, dass der Druckbereich als pdf gespeichert wird, aber eben ja den wechselnden Datei-Namen manuell eingegeben. Vielleicht kannst Du ja etwas daraus erkennen.
Sub pdf_druckbereich_22()
' pdf_druckbereich_22 Makro
Application.Goto Reference:="Print_Area"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"Supertrainer Rückrunde 15-16 - Spieltag 22.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End Sub

Anzeige
AW: schwer zu sagen
26.02.2016 11:34:13
Michael
Hi Winni,
das ist ja anscheinend das Gleiche...
Ich habe in meiner Datei einen Druckbereich definiert und das Ganze in EIN Sub gepackt; eigentlich ist es ja sowieso nur eine Anweisung (wenn auch mehrzeilig) - vielleicht geht es ja so.
https://www.herber.de/bbs/user/103905.xlsm
Ansonsten fällt mir ohne Deine Datei eigentlich nix mehr ein.
Schöne Grüße,
Michael

AW: schwer zu sagen
26.02.2016 13:54:42
winfried
moin, also wenn Du nicht weiter weisst ? ich kann Dir ruhig meine ganze Datei schicken, aber ... Unter Profile finde ich zwar 2x einen Michael, aber beide ohne eine E-Mail-Adr.. Ich weiss, ich mal wieder zu doof :-( , aber hast doch geschrieben dass ich sie finden kann.

Anzeige
AW: schwer zu sagen
26.02.2016 16:53:16
winfried
Hallo, Michael,
habe Dir eben die Excel-Datei an die schwärmerische E-mailadr geschickt.
Danke Dir !

Na, da hammer's schon
27.02.2016 18:47:34
Michael
Hi Winni,
Datei ging eben per mail zurück an Dich!
Damit die Leser des Forums auch wissen, was der Fehler war: Du hattest im Dateinamen einen "/" bei der Saison. Wo Du es nämlich händisch gespeichert hast, hast Du den Dateinamen händisch vergeben mit "xxx Saison 15-16 xxx", nur bei "meiner" Variante hieß es "xxx Saison 15/16 xxx" - da spuckt das System.
Habe in U28 den / durch einen - ersetzt, und schon geht's ohne weitere Änderung.
Schöne Grüße,
Michael

Anzeige
AW: Na, da hammer's schon
28.02.2016 17:28:17
winfried
VIELEN VIELEN DANK, es läuft.
"Sehr gutes Arbeiten mit Dir". Auch was Du mir da noch geändert hast, ... ich weiss jetzt, dass ich so gut wie nischt weiss. Hat zwar auch so geklappt ( bis aufs speichern ), aber die Verschlankung ist schon enorm, die Du da eingebaut hast. Meine Hochachtung !

245 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige