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

per Button in Ordner speichern

per Button in Ordner speichern
18.08.2017 07:46:00
harti
Hallo,
ich habe diesen Beitrag noch einmal in's Leben gerufen da ich den ursprünglichen Beitrag nicht mehr in der Liste finde.
Das u. a. Makro hat Michael (migre) gebastelt...und es hat mir super bei der Erstellung eines Projektes geholfen.
Leider muss ich da noch einmal nerven und um Hilfe bitten.
Das Makro speichert ja die PDFs in den Ordner nach folgender Syntax:
Test - KW 33 -Freitag, 2017.08.18mappe1.pdf
Test - KW 33 -Freitag, 2017.08.18_1mappe1.pdf
Test - KW 33 -Freitag, 2017.08.18_1_2mappe1.pdf
Test - KW 33 -Freitag, 2017.08.18_1_2_3mappe1.pdf
usw...
Wie müsste das Makro abgeändert werden damit die PDFs wie folgt abgespeichert werden:
Test - 2017.08.18_08:12.pdf
Test - 2017.08.18_11:21.pdf
Also mit der Uhrzeit der Speicherung anstatt der fortlaufenden Nummerierung..
Danke schon einmal für jegliche Hilfe.
harti
Hier das Makro:
Sub b()
Const PFAD$ = "C:\Users\Desktop\" 'anpassen
Const PRE$ = "Test - KW " 'anpassen
Const SUF$ = ".pdf" 'anpassen
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.ActiveSheet
Dim Mon, Verz$, DName$, i&
Mon = Array("Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", _
"August", "September", "Oktober", "November", "Dezember")
DName = Application.WorksheetFunction.WeekNum(Date, 21) & _
Format(Date, " - dddd, yyyy/mm.dd")
'Verzeichnis-Name aus aktuellem Jahr und Monatsnamen erstellen
Verz = Year(Date) & " " & Mon(Month(Date) - 1)
'Verzeichnis anlegen, wenn noch nicht vorhanden
If Dir(PFAD & Verz, vbDirectory) = "" Then MkDir PFAD & Verz
'Prüfen ob eine Datei mit diesem Namen schon existiert
'...wenn ja wird solange mit _# ergänzt (hochgezählt) bis der
'Dateiname noch nicht existiert, und mit dem letzten gespeichert
Do Until Dir(PFAD & Verz & "\" & PRE & DName & SUF) = ""
i = i + 1: DName = DName & "_" & i
Loop
'Blatt entsprechend speichern
Ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=PFAD & Verz & "\" & PRE & DName & SUF, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
MsgBox "PDF-Export abgeschlossen!"
Set Wb = Nothing: Set Ws = Nothing: Erase Mon
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per Button in Ordner speichern
18.08.2017 09:06:55
Dennis
Moin harti,
das ist jetzt gefährliches Halbwissen, aber musst du nicht einfach nur das Date-Format ändern und die Uhrzeit ergänzen?
A la:
DName = Application.WorksheetFunction.WeekNum(Date, 21) & _
Format(Date, " - dddd, yyyy/mm.dd hh.mm")
Sonst würde ich noch probieren statt (Date,...) - Format(Now(), " - yyyy/mm.dd hh.mm") zu verwenden.
VG Dennis
AW: per Button in Ordner speichern
18.08.2017 09:34:55
harti
Hallo Dennis,
werde ich mal testen und Rückmeldung geben.
bin jetzt gerade unterwegs und komme nicht sofort zum testen.
Danke
harti
AW: per Button in Ordner speichern
18.08.2017 10:23:57
Michael
Hallo Harti!
Für Deine Anforderung kann der ganze Code etwas entschlankt werden ;-):
Sub b()
Const PFAD$ = "C:\Users\Desktop\"
Const PRE$ = "Test - "
Const SUF$ = ".pdf"
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.ActiveSheet
Dim Mon, Verz$, DName$
Mon = Array("Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", _
"August", "September", "Oktober", "November", "Dezember")
Verz = Year(Date) & " " & Mon(Month(Date) - 1)
If Dir(PFAD & Verz, vbDirectory) = "" Then MkDir PFAD & Verz
DName = PRE & Format(Now, "yyyy.mm.dd_hh:mm")
If Dir(PFAD & Verz & "\" & DName & SUF) = "" Then
Ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=PFAD & Verz & "\" & PRE & DName & SUF, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
End If
MsgBox "PDF-Export abgeschlossen!"
Set Wb = Nothing: Set Ws = Nothing: Erase Mon
End Sub
Aber wenn Du mir gleich gesagt hättest, welche Anforderungen Du hast, hätten wir das nicht in sovielen Fäden bearbeiten müssen ;-).
LG
Michael
Anzeige
AW: per Button in Ordner speichern
18.08.2017 11:55:10
harti
Hallo Michael...
ja sorry für die viele Arbeit...aber als Anfänger ist's nicht immer so leicht das alles hinzubekommen :-) Manchmal erwächst eine Anforderung auch erst im Weitergang des Projekts...
Ich bekomme bei Deinem Code einen Fehler...Laufzeitfehler 52: Dateiname oder -nummer falsch.
Debugger markiert folgende Zeile
If Dir(PFAD & Verz & "\" & DName & SUF) = "" Then
harti
Ja, sorry, da hab ich nicht aufgepasst
18.08.2017 12:09:16
Michael
Harti,
Ich bekomme bei Deinem Code einen Fehler
...aber das liegt daran, dass Du angegeben hast, dass Du die Speicher-Uhrzeit im Dateinamen willst, in einem Dateinamen darf aber ein ":" (wie bei 12:08) nicht vorkommen. D.h. Du müsstest Stunden und Minuten anders trennen, hier mal mit nur einem Punkt:
Sub b()
Const PFAD$ = "U:\Test\"
Const PRE$ = "Test - "
Const SUF$ = ".pdf"
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.ActiveSheet
Dim Mon, Verz$, DName$
Mon = Array("Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", _
"August", "September", "Oktober", "November", "Dezember")
Verz = Year(Date) & " " & Mon(Month(Date) - 1)
If Dir(PFAD & Verz, vbDirectory) = "" Then MkDir PFAD & Verz
DName = PRE & Format(Now, "yyyy.mm.dd_hh.mm")
If Dir(PFAD & Verz & "\" & DName & SUF) = "" Then
Ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=PFAD & Verz & "\" & DName & SUF, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
End If
MsgBox "PDF-Export abgeschlossen!"
Set Wb = Nothing: Set Ws = Nothing: Erase Mon
End Sub
So sollte der Code eigentlich laufen.
LG
Michael
Anzeige
AW: Ja, sorry, da hab ich nicht aufgepasst
18.08.2017 12:11:55
harti
Perfekt...vielen Dank.
Wie sag' ich immer: es ist alles so einfach...wenn man's weiß :-)
Dir ein schönes Wochenende.
harti
Stimmt ;-), Dir auch ein schönes WE, lg und owt
18.08.2017 12:14:48
Michael

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige