Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1284to1288
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

Dynamischer Pfad & Dateiname im Makro

Dynamischer Pfad & Dateiname im Makro
01.11.2012 14:24:13
Nik
Hallo zusammen...
mit der Makroschleife von Tino bin ich schonmal arg weitergekommen. Nochmals herzlichen DANK! :-) Jetzt hätte ich noch ein Nice-to-Have, dass ich gerne umsetzen würde:
Und zwar würde ich die Rechnung jeweils gerne als PDF abspeichern; der Code würde so aussehen:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Daten\Vereinsdaten Rechnung.pdf", Quality:=xlQualityStandard _
, IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=1, _
OpenAfterPublish:=True
Kann ich den Pfad, als auch den Dateinamen irgendwie aus dem Excelfile auslesen und oben in den Code übernehmen?
Der Pfad steht in der Zelle K1 und der zu generierende Dateinamen wird in in K2 errechnet.
Das in die Schleife einbauen würde ich hinbekommen, aber bezüglich der Variablen stehe ich etwas auf dem Schlauch...:-(
Vielen lieben Dank und Gruss
Nik

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamischer Pfad & Dateiname im Makro
01.11.2012 14:27:57
{Boris}
Hi,
ungetestet:
Const sPfad As String = "C:\Daten"
Const sName As String = "Vereinsdaten Rechnung.pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
sPfad & "\" & sName, Quality:=xlQualityStandard _
, IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=1, _
OpenAfterPublish:=True
Die Variablen sPfad und sName dann natürlich nicht konstant, sondern via Zellbezug befüllen.
VG, Boris

AW: Dynamischer Pfad & Dateiname im Makro
01.11.2012 15:28:23
Nik
Hallo Boris,
ich stehe noch etwas auf dem Schlauch...hab eine Fehlermeldung grad in der ersten Zeile mit dem spfad, den er sich aus der Zelle K1 lesen soll...
Const sPfad As String = Range("K1")
Const sName As String = Range("K2")
Dim n&, nn&, MerkWert
With Application
.ScreenUpdating = False
.EnableEvents = False
With Worksheets("Rechnung")
nn = Range(.Shapes("Listenfeld 3").DrawingObject.ListFillRange).Rows.Count
MerkWert = .Range("O1").Value
End With
For n = 1 To nn
Worksheets("Rechnung").Range("O1") = n
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
sPfad & "\" & sName, Quality:=xlQualityStandard _
, IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=1, _
OpenAfterPublish:=True
Next n
End With
Worksheets("Rechnung").Range("O1").Value = MerkWert
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Könntest Du mal kurz draufschauen? Vielen lieben Dank und Gruss
Nik

Anzeige
AW: Dynamischer Pfad & Dateiname im Makro
01.11.2012 16:03:37
{Boris}
Hi,
Const sPfad As String = Range("K1")
Const sName As String = Range("K2")

Eine Konstante ist eben eine Konstante. Das hatte ich nur der Einfachheit halber so gepostet.
Mit den Zellzuweisungen musst Du die Variablen "normal" deklarieren und dann entsprechen so zuweisen:
Dim sPfad As String
Dim sName As String
sPfad = Range("K1")
sName = Range("K2")
VG, Boris

AW: Dynamischer Pfad & Dateiname im Makro
02.11.2012 09:05:44
Nik
Schönen guten Morgen zusammen,
gestern hatten mir Tino und Boris hilfreich unter die Arme gegriffen, aber irgendwie schnalle ich es nicht so wirklich... Der folgende Code, der eigentlich zig PDF`S (Pfad und Dateinamen soll jeweils aus K1 und K2 gelesen werden) abspeichern soll macht zwar was, aber es ist nur das PDF der letzten Person im Dropdown abgespeichert. Eine Fehlermeldung erfolgt nicht, aber der Ordner enthält jeweils nur das eine PDF der letzten Person des Dropdowns...:-(
Sub PDF()
Dim sPfad As String
Dim sName As String
sPfad = Range("K1")
sName = Range("K2")
Dim n&, nn&, MerkWert
With Application
.ScreenUpdating = False
.EnableEvents = False
With Worksheets("Rechnung")
nn = Range(.Shapes("Listenfeld 3").DrawingObject.ListFillRange).Rows.Count
MerkWert = .Range("O1").Value
End With
For n = 1 To nn
Worksheets("Rechnung").Range("O1") = n
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
sPfad & "\" & sName, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=1, OpenAfterPublish:=False
Next n
End With
Worksheets("Rechnung").Range("O1").Value = MerkWert
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

Seht ihr spontan einen Fehler?
Vielen lieben Dank und Gruss
Nik

Anzeige
AW: Dynamischer Pfad & Dateiname im Makro
02.11.2012 10:37:08
{Boris}
Hi Nik,
Seht ihr spontan einen Fehler?
Natürlich. Zu Beginn weist Du den Variablen sPfad und sName den Inhalt der Zellen K1 bzw. K2 zu - und diesen Inhalt behalten die Variablen bis zum Ende des Makros (und somit natürlich auch in Deiner Schleife, die damit permanent die selbe PDF-Datei erzeugt).
Aber mangels genauerer Kenntnis Deines Dateiaufbaus kann ich nicht mehr dazu sagen.
VG, Boris

AW: Dynamischer Pfad & Dateiname im Makro
02.11.2012 11:30:00
Nik
Hallo Boris,
vielen lieben Dank für Dein Feedback! Folgendes:
In der Zelle K1 ist der Pfad hinterlegt, der für alle Vereinsrechnungen gleich bleibt, sprich hierher sollen alle Vereinsrechnungen abgespeichert werden.
In der Zelle K2 errechne in einer Formel den Dateinamen, sprich Jahresrechnung & Name.
In der Zelle O1 wird der Wert des Dropdowns wiedergegeben, sprich wenn im Dropdown/ Listenfeld der 2. Name ausgewählt ist steht in der Zelle O1 der Wert 2.
Mit folgendem Code:
With Worksheets("Rechnung")
nn = Range(.Shapes("Listenfeld 3").DrawingObject.ListFillRange).Rows.Count
MerkWert = .Range("O1").Value
End With
sollen erstmal die Anzahl von Einträgen im Dropdown ausgelesen werden und die Schleife eben dementsprechend oft ablaufen lassen. Aber eben, er speichert mir immer nur den letzten Eintrag :-( Und ich schnall nicht warum...
Ist das ein wenig verständlicher erklärt? Vielen lieben Dank!
Gruss
Nik

Anzeige
AW: Dynamischer Pfad & Dateiname im Makro
02.11.2012 13:58:43
Nik
Hallo Boris,
vielen lieben Dank für Dein Feedback! Folgendes:
In der Zelle K1 ist der Pfad hinterlegt, der für alle Vereinsrechnungen gleich bleibt, sprich hierher sollen alle Vereinsrechnungen abgespeichert werden.
In der Zelle K2 errechne in einer Formel den Dateinamen, sprich Jahresrechnung & Name.
In der Zelle O1 wird der Wert des Dropdowns wiedergegeben, sprich wenn im Dropdown/ Listenfeld der 2. Name ausgewählt ist steht in der Zelle O1 der Wert 2.
Mit folgendem Code:
With Worksheets("Rechnung")
nn = Range(.Shapes("Listenfeld 3").DrawingObject.ListFillRange).Rows.Count
MerkWert = .Range("O1").Value
End With
sollen erstmal die Anzahl von Einträgen im Dropdown ausgelesen werden und die Schleife eben dementsprechend oft ablaufen lassen. Aber eben, er speichert mir immer nur den letzten Eintrag :-( Und ich schnall nicht warum...
Ist das ein wenig verständlicher erklärt? Vielen lieben Dank!
Gruss
Nik

Anzeige
AW: Dynamischer Pfad & Dateiname im Makro
02.11.2012 16:18:48
{Boris}
Hi Nik,
Aber eben, er speichert mir immer nur den letzten Eintrag :-( Und ich schnall nicht warum...
Nochmal: Im Code selbst hast Du ZU BEGINN die Variablen mit den Werten aus K1 bzw. K2 gefüllt - und damit haben die Variablen solange diese Werte, bis Du ihnen neue zuweist. Und genau diese Neuzuweisung erfolgt in Deinem bisherigen Code nicht - daher bleibt der Dateiname immer der Selbe, und zwar genau so, wie er mit Deiner
In der Zelle K2 errechne in einer Formel den Dateinamen, sprich Jahresrechnung & Name.
ermittelt wurde.
Da ich aber weder Deine Datei noch die Formel aus K2 kenne, kann ich Dir bis dahin nicht mehr sagen - sorry.
VG, Boris

Anzeige
AW: Dynamischer Pfad & Dateiname im Makro
03.11.2012 10:08:05
Nik
Hallo zusammen,
sorry, es ist in der Tat etwas schwierig in Worten zu fassen was das Problem ist und somit natürlich fast unmöglich eine Lösung zu finden. Deshalb anbei das File, in dem das Problem, sprich das Makro PDF ersichtlich ist:
https://www.herber.de/bbs/user/82461.xls
In Zelle K1 und K2 auf dem Sheet "Rechnung" sind wie gesagt der Pfad und der Dateiname (errechnet) hinterlegt. Das Makro sollte jeweils alle Einträge im Dropdown (hier können jeweils alle Namen ausgewählt werden) abarbeiten und die Rechnungen im Pfad (Zelle K1) mit dem dazugehörigem Dateinamen (Zelle K2 berechnet) abspeichern. Allerdings wird nur die Rechnung des letzten Eintrages im Dropdown abgespeichert (wie das Boris auch schon gleich im Code gesehen hat..)
Was mache ich falsch? Achja, Excel ist auf automatische Berechnung gestellt, bezüglich des Dateinamens.
Gruss
Nik

Anzeige
AW: Dynamischer Pfad & Dateiname im Makro
03.11.2012 11:03:51
{Boris}
Hi Nik,
so geht`s zum Beispiel:
Sub PDF()
Dim x As Long
Dim sPfad As String
sPfad = Worksheets("Rechnung").Range("K1")
For x = 1 To Worksheets("Datenbank Aktiv").Range("B101").End(xlUp).Row - 3
Worksheets("Rechnung").Range("O1") = x
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
sPfad & "\" & Worksheets("Rechnung").Range("K2"), Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=1, OpenAfterPublish:=False
Next x
End Sub
VG, Boris

AW: Dynamischer Pfad & Dateiname im Makro
03.11.2012 11:36:31
Nik
Wooow...SUPER :-) Vielen herzlichen DANK! Es funktioniert und ich kann gar nicht sagen wieviel Zeit mir das jetzt spart! Ich weiss gar nicht wie ich danken soll!
Also vielen lieben Dank und ein schönes Weekend!
Gruss
Nik
Anzeige

27 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige