AW: Datei mit nächst höherer laufender Nummer speicher
14.10.2009 02:07:49
fcs
Hallo Joni,
hier ein Beispiel erstellt unter Excel 2007.
Sollte bis auf die Ausgabe des Blattes als PDF-Datei auch unter Excel 2003 funktionieren.
Gruß
Franz
'Erstellt unter Excel 2007, Windows Vista
Sub Next_PDF_File_Number()
Dim Nummer As Long, strDateiname As String, Anzahl_Ziffern As Long
Anzahl_Ziffern = 5 'Anzahl Ziffern in Zählnummer
'Ermittlung der nächsten Zählnummer - Verzeichnis und Dateityp anpassen!!
Nummer = fncLastNumber(strVerzeichnis:="C:\Users\Public\Test", _
AnzZiffern:=Anzahl_Ziffern, DateiTyp:="pdf") + 1
'Dateiname generieren
strDateiname = Format(Nummer, String(Anzahl_Ziffern, "0")) & " Rechnung " _
& Format(Date, "YYYY-MM-DD") & ".pdf"
MsgBox "Nächster Dateiname: " & strDateiname ' Testzeile
'Aktives Blatt als PDF-Datei speichern und anzeigen
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDateiname, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
Function fncLastNumber(strVerzeichnis As String, AnzZiffern As Long, _
Optional DateiTyp As String = "*") As Long
Dim strDatei As String
'Ermittlung der höchsten Zählnummer in den Dateinamen des Verzeichnisses
strDatei = Dir(strVerzeichnis & Application.PathSeparator & "*." & DateiTyp)
Do Until strDatei = ""
If IsNumeric(Left(strDatei, AnzZiffern)) Then
If CLng(Left(strDatei, AnzZiffern)) > fncLastNumber Then
fncLastNumber = CLng(Left(strDatei, AnzZiffern))
End If
End If
strDatei = Dir
Loop
End Function