Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1520to1524
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

PDF-Namen im Druckmakro

PDF-Namen im Druckmakro
26.10.2016 14:30:58
hakula
Hallo zusammen,
ich habe ein Problem dabei, bei einem automatisierten Druckmakro den PDF einen variablen Namen mitzugeben. Hier ist die zugehörige BSP-Datei:
https://www.herber.de/bbs/user/109030.xlsm
Die Datei ist so aufgebaut, dass im Blättchen Übersicht die Auswertungen abhängig von der Kostenstelle in Zelle A2 erstellt werden. Möchte ich nun eine verschiedene KST-Gruppe drucken lassen, so zieht er sich diese aus dem jeweiligen Dropdownbereich im Blatt "Dropdown" (im Beispiel hier habe ich nur eine abgebildet) und arbeitet KST für KST ab. Dafür aktiviere ich den PDF-Button.
Der PDF-Name ist im Hauptmakro so bearbeitet, dass er für jedes Dropdown-PDF-Makro beliebig geändert werden kann:
strName_PDF_Datei = Pfad & strName_PDF_1 & varKST & strName_PDF_2 & ".pdf"
Setze ich für
strName_PDF_1:=Range("B6"), _
ein, dann funktioniert das bei der ersten KST. B6 ist die zuständige Person für die KST. Sobald aber die nächste KST geladen und gedruckt wird, ändert sich der Name der zuständigen Person aber nicht, sondern verbleibt bei dem Wert der bei der ersten KST war.
Hat vielleicht jemand von euch eine Idee woran das liegen könnte? Ich bin kein VBA-Profi, aber ich dachte, dass es zumindest vom Prinzip her klappen müsste..
Ich wäre sehr dankbar für jeden Tipp!
Lg Michael

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PDF-Namen im Druckmakro
27.10.2016 00:54:23
fcs
Hallo Michael,
wahrscheinlich wird das Makro schneller ausgeführt als die Neuberechnungen oder Excel reagiert hier nicht auf die Formel-Eingabe und macht in der Makroausführung weiter bevor die Neuberechnungen .
Bei mir werden mit deiner Testdatei mit nur einem Datensatzt je KST die 3 PDF-Dateien korrekt erstellt.
In solchen Fällen reicht es oft aus die Neuberechnung im Makro einzubauen.
Du musst dann mal testen, ob die Neuberechnung des Blatts "Übersicht" ausreicht, oder ob eine komplette Neuberechnung in Excel notwendig ist für eine korrekte PDF-Ausgabe.
Gruß
Franz
zu korrigierender Makroabschnitt:
            If varKST  "" Then
wksUeber.Range(strZelleKst) = varKST
Run Macro:=AktualisierungsMakro
wksUeber.Calculate
'oder
'                Application.Calculate
'PDF Datei des Blattes speichern
Worksheets(strBlattDaten).ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strName_PDF_Datei, _
Quality:=xlQualityStandard, includeDocproperties:=True, _
IgnorePrintAreas:=False, OpenafterPublish:=True
End If

Anzeige
AW: PDF-Namen im Druckmakro
27.10.2016 11:54:45
hakula
Hallo Franz,
vielen Dank für deinen Tipp! Leider funktioniert das nicht, ich hatte schon die Befürchtung, dass der PDF Druck die Aktualisierung im Feld nicht mitbekommt. Sobald ich den Seriendruck starte und er das Dropdown abarbeitet, behält er den Namen der vor dem Makrostart in der Zelle war. Wäre es auch möglich, "strName_PDF_1" durch einen Sverweis im Makro zu ersetzen, der als Suchkriterium die aktuell genutzte bzw. eingelesene KST (varKST) verwendet? Ich hatte schon ein wenig rumprobiert, leider hat er mir dann immer einen Fehler gemeldet und es nicht mehr ausgeführt..
Gruß Michael
Anzeige
AW: PDF-Namen im Druckmakro
27.10.2016 22:21:10
fcs
Hallo Michael,
ich hab jeztz erst nach nochmaligem lesen deiner Frage erkannt, dass das Problem ein Teil des PDF-Dateinamens ist.
Der Name in Zelle B6 nicht mit dem Haupmakro als Parameter übergeben werden, sondern muss innerhalb der Schleife eingelesen werden, die die einzelnen PDF generiert.
LG
Franz
Sub PDF_KST()
Call prcPDF_Speichern(strBlattDaten:="Übersicht", _
strZelleKst:="E3", _
Pfad:=ActiveWorkbook.Path & "\", _
strName_PDF_2:=" " & Format(Date, "YYYY-MM-DD"), _
Spalte:=1, _
AktualisierungsMakro:="Dropdown_aktivieren_Manuell")
End Sub
Sub Dropdown_aktivieren_Manuell()
' Dropdown_aktivieren_Manuell
Worksheets("Übersicht").Range("A2").FormulaLocal = "=E3"
End Sub
'Sub-Routine zum Speichern der Dateien je KSt, die von den obigen Makros gestartet wird
Sub prcPDF_Speichern(ByVal strBlattDaten As String, ByVal strZelleKst, ByVal Pfad As String, _
ByVal strName_PDF_2 As String, _
ByVal Spalte As Long, AktualisierungsMakro As String)
'Daten  als PDF speichern
'strBlattDaten  = Name des Blatts mit den Daten,die als PDF gespeicert werden sollen
'strZelleKst    = Zelle in die im Blatt "Übersicht" die Kst eingetragen wird
'Pfad           = Verzeichnis in dem die PDF-Datei(en) gespeichert werden sollen
'strName_PDF_1  = Anfang des Namens der PDF-Datei
'strName_PDF_2  = Teil des Dateinamens nach der Kostenstelle vor der Namens-Extension
'Spalte         = Nummer der Spalte mit der Kst in Blatt "Dropdown"
'AktualisierungsMakro = Name des Makros mit dem die Diagrammdaten aktualisiert werden _
dies sind Makros, die von entsprechenden DropDown-Aktualisierungsschaltflächen  _
_
gestartet werden.
Dim wksUeber As Worksheet, wksDropDown As Worksheet
Dim Zeile As Long
Dim varKST As Variant
Dim strName_PDF_Datei As String
Dim strName_PDF_1 As String
Set wksUeber = Worksheets("Übersicht")
Set wksDropDown = Worksheets("Dropdown")
With wksDropDown
For Zeile = 2 To .Cells(.Rows.Count, Spalte).End(xlUp).Row
'Kostenstelle aus Liste einlesen
varKST = .Cells(Zeile, Spalte).Value
If varKST  "" Then
wksUeber.Range(strZelleKst) = varKST
Run Macro:=AktualisierungsMakro
Worksheets(strBlattDaten).Calculate '
'oder
'                Application.Calculate
strName_PDF_1 = wksUeber.Range("B6").Text & " "
'Name der PDF-Datei
strName_PDF_Datei = Pfad & strName_PDF_1 & varKST & strName_PDF_2 & ".pdf"
'PDF Datei des Blattes speichern
Worksheets(strBlattDaten).ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strName_PDF_Datei, _
Quality:=xlQualityStandard, includeDocproperties:=True, IgnorePrintAreas:= _
False, _
OpenafterPublish:=True
End If
Next Zeile
End With
End Sub

Anzeige
AW: PDF-Namen im Druckmakro
28.10.2016 13:17:36
hakula
Hallo Franz,
vielen Dank, das funktioniert! Ich hatte gehofft, dass mit dem Teilmakro umzusetzen, da ich in der originalen Datei gerade 8 verschiedene DropDowns habe, die sich auf das Hauptmakro prcPDF_Speichern beziehen. Jeder Dropdown soll die PDF allerdings anders benennen, zb. anstatt dem zuständigen Mitarbeiter der Name der Kostenstelle etc.
Ich werde das dann allerdings nur umsetzen können, wenn ich das Hauptmakro für jeden Dropdown anlege, liege ich da richtig?
Vielen Dank für deine Hilfe, ich wünsche Dir ein schönes Wochenende!
AW: PDF-Namen im Druckmakro
28.10.2016 16:23:53
hakula
Hi Franz,
durch deine Hilfestellung konnte ich das ganze nun doch durch Variablen ablösen
    With wksDropDown
For Zeile = 2 To .Cells(.Rows.Count, Spalte).End(xlUp).Row
'Kostenstelle aus Liste einlesen
varKST = .Cells(Zeile, Spalte).Value
If varKST  "" Then
wksUeber.Range(strZelleKst) = varKST
Run Macro:=AktualisierungsMakro
Application.Calculate
'Variabler Teil bzw. Dynamischer Dateiname
strName_PDF_0 = wksUeber.Range("P2").Text
strName_PDF_1 = wksUeber.Range("P4").Text
'Name der PDF-Datei
strName_PDF_Datei = strName_PDF_0 & strName_PDF_1 & ".pdf"
'PDF Datei des Blattes speichern
Worksheets(strBlattDaten).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
strName_PDF_Datei, _
Quality:=xlQualityStandard, includeDocproperties:=True, IgnorePrintAreas:= _
False, _
OpenafterPublish:=True, _
from:=vWert1, To:=vWert2
End If
Next Zeile
End With
End Sub

Manchmal benötigt es nur etwas Hilfestellung, danke nochmal!
Gruß Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige