Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1832to1836
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
Datumswert in Dateinamen?
08.06.2021 10:12:48
Conny
Guten Morgen zusammen,
ich habe einen VBA-Code für die Erstellung einzelner Word- und PDF-Dokumente aus einem umfangreichen Serienbrief geschrieben, der die einzeln erzeugten und nach Vorgabe benannten Dokumente nach bestimmten Kriterien in verschiedene Ordner (die ich per VBA zuvor aus der Excel-Quelldatei heraus erstelle) auf dem Fileserver sortiert. Der Code funktioniert auch.
Allerdings würde ich gern in die zu erzeugenden Dateinamen auch einen Datumswert integrieren (DocDatum = .DataFields("Datum_VA").Value), allerdings wird dieser Datumswert dann immer mit Slashs statt Punkten ausgewiesen, was das Speichern nicht möglich macht. Wie bekomme ich ein für Dateinamen zulässiges Datumsformat erzeugt?
(Der Code soll ein Beispiel für Office-erfahrene Kollegen sein, den sie selbst beliebig auf vergleichbare Aufgaben übertragen können sollen. Das ist hier de Aufgabenstellung)

Option Explicit
Dim DocName As String
Sub EinzelPDFsUndDocsAusSerienbrief()
Dim Dateiname As String
Dim DocName As String
Dim LetzterRec As Long
Dim strPath As String
Dim strName As String
Dim strDocument As Object
Dim DocThema As String
Dim DocDatum As String
Dim DocVorname As String
Application.ScreenUpdating = False
Application.Visible = False
Const path As String = "P:\0_ kobra.net\AG EXCEL\Projekt VBA Einzel-PDFs u. DOCs\2_Schreiben einzeln doc\"
'Pfad anpassen
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
LetzterRec = Word.ActiveDocument.MailMerge.DataSource.ActiveRecord
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = wdFirstRecord
Do
If .DataSource.ActiveRecord > 0 Then
If .DataSource.DataFields("Name").Value  "0" Then
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = .ActiveRecord
.LastRecord = .ActiveRecord
'Dateiname = Path & "VA " & .DataFields("Veranstaltungsthema").Value & .DataFields("Datum_VA").Value & .DataFields("Name").Value & "_Teilnahmebescheinigung.docx" 
Dateiname = path & "VA " & .DataFields("Veranstaltungsthema").Value & "_" & .DataFields("Vorname").Value & " " & .DataFields("Name").Value & "_Teilnahmebescheinigung.doc"
Dateiname = Replace(Dateiname, Chr(13), "")
DocVorname = .DataFields("Vorname").Value
DocName = .DataFields("Name").Value
DocThema = .DataFields("Veranstaltungsthema").Value
DocDatum = .DataFields("Datum_VA").Value
'                  MsgBox (DocName)
End With
.Execute Pause:=False
ActiveDocument.SaveAs FileName:=Dateiname           'Speichern unter Dateiname
ActiveDocument.Close False
For Each strDocument In Application.Documents
With strDocument
strPath = "P:\0_ kobra.net\AG EXCEL\Projekt VBA Einzel-PDFs u. DOCs\1_Schreiben einzeln pdf\" & "VA " & DocThema & "\"
strName = "VA " & DocThema & "_" & DocVorname & " " & DocName & " " & "_Teilnahmebescheinigung" & ".pdf"
.ExportAsFixedFormat Outputfilename:=strPath & strName, _
ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
wdExportAllDocument, Item:=wdExportDocumentContent, _
IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
End With
Next strDocument
End If
End If
If .DataSource.ActiveRecord 

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumswert in Dateinamen?
08.06.2021 10:49:08
Rudi
Hallo,
versuchs mal mit

& Format(.DataFields("Datum_VA").Value, "DD.MM.YYYY")
Gruß
Rudi
AW: Datumswert in Dateinamen?
08.06.2021 10:57:12
Conny
Sieht so einfach aus, er wirft mir aber einen Laufzeitfehler aus (438)?!
AW: Datumswert in Dateinamen?
08.06.2021 11:12:09
Rudi
vielleicht noch CDate drumrum?

& Format(CDate(.DataFields("Datum_VA").Value), "DD.MM.YYYY")
Steht auf jeden Fall ein Datum im Feld?
Gruß
Rudi
AW: Datumswert in Dateinamen?
08.06.2021 11:20:32
Conny
Hm, geht leider auch nicht, es bleibt beim selben Fehler. Und ja, es steht auf jeden Fall ein Datumswert... ich habe das über eine Messagebox geprüft...
AW: Datumswert in Dateinamen?
08.06.2021 14:14:43
Rudi
hab ganz übersehen, dass das ja Word-VBA ist. Evtl. gibt es da die Format-Funktion nicht.
Anzeige
Fehler muss woanders sein
08.06.2021 14:29:37
Rudi
format(Date,"DD.MM.YYYY") funktioniert auch in Word (08.06.2021)
AW: Fehler muss woanders sein
08.06.2021 14:44:01
Conny
Lieben Dank für deine weiteren Vorschläge!! Inzwischen läuft das vom Prinzip her, ich habe beide Dateinamen (in doc und pdf) jetzt incl. Datum. Ich bekomme nur das Problem nicht gelöst, dass er Tages- und Monatswerte wild mischt, abhängig davon, ob der Tageswert größer 12 ist oder nicht... Der 15.04.2021 bleibt der 15.04.2021, der 01.04.2021 wird zum 04.01.2021. Da lese ich mich gerade durch das Netz, bin aber noch nicht weiter...
Feldfunktionen
08.06.2021 15:37:37
Rudi
Hallo,
Rechtsklick auf das Feld - Feldfunktionen ein/aus
{ MERGEFIELD VA_Datum \@"dd.MM.yyyy" }
Anzeige

211 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige