Clever-Excel-Forum

Normale Version: Zielordner selbst erstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

zur Zeit speichere ich meine Blätter mit folgendem Makro

Code:
Sub BlattSpeichernRechnung()

Application.ScreenUpdating = False
ActiveSheet.Copy
Dim neuName As String
'Pfad anpassen "H:\???????\
ChDir "C:\Users\p\Desktop\Wein\Rechnungen"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
       "C:\Users\p\Desktop\Wein\Rechnungen\" & Range("D12") & Range("B12") & Format(Date, "dd.mm.yyyy") & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True
End Sub

Jetzt ist es aber so das alle Rechnungen in einem Ordner gespeichert werden und sich gleiche Namen nur durch das Datum unterscheiden.
Ist es möglich in den Code etwas einzubauen wie einen Zielordner der sich selbst erstellt mit dem Namen aus D12 und B12, darin dann die Rechnung unter dem Namen aus D12 und B12 und dem Datum speichert und wenn dieser Ordner mit dem Namen schon vorhanden ist, die Rechnung enfach diesem Ordner mit D12 und B12 und dem Datum hinzufügt.
Als Steigerung in diesem Ordner auch noch Ordner für die Jahre erstellt.

Ich habe schon die Suche bemüht aber mit den Begriffen habe ich leider keinen erfolg gehabt.
Vielleicht gibt es schon einen Thread und jemand kann mir den Link einstellen.

Das ganze läuft dann unter 2007

Gruß
Thomas

Code strukturiert dargestellt durch 3. Button von rechts im Beitragsformular: #
photo Raute_zps3ee56209.jpg
Hallo Thomas,

hier ein Beispielcode:

Code:
Application.ScreenUpdating = False
   Dim neuName As String
   Dim ordner As String
   ordner = "C:\Users\p\Desktop\Rechnungen"
  
   If Dir(ordner, vbDirectory) = "" Then MkDir ordner
  
   ActiveSheet.Copy
   ChDir ordner
  
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
   ordner & "\" & Range("D12") & Range("B12") & Format(Date, "dd.mm.yyyy") & ".pdf", _
   Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
   :=False, OpenAfterPublish:=True
  
End Sub

Was noch berücksichtigt werden soll, habe ich nicht ganz verstanden. Welches Jahr soll genommen werden. Das Jahr bei Rechnungserstellung oder beim Ausführen des Codes. Oder sind die Ereignisse identisch?
Hallo Atilla,
ich probier es gleich mal.

Es soll das Jahr bei Rechnungsstellung genommen werden.

Gruß
Thomas
HAllo Atilla,

da hat sich gegenüber meinem Code nichts geändert.
Es wird im angegebenen Zielordner gespeichert.
Es sollte sich aber ein neuer erstellen mit dem Namen aus den Zellen ( Peter Pan ) und dann in diesem Ordner die Rechnung unter dem Namen ( Peter Pan ) und Datum abgelegt werden.
Wenn dieser Ordner ( Peter Pan )bei einer weiteren Rechnung für Peter Pan schon besteht soll die Rechnung einfach in dem besteheden mit Datum und Namen ( Peter PAn ) abgelegt werden.

Gruß
Thomas
Hallo Thomas,

natürlich hat sich nichts geändert.

Es muss auc so lauten:

ordner = "C:\Users\p\Desktop\Rechnungen\" & Range("D12") & Range("B12")

Sorry, mein Fehler.
Danke Atilla,
es läuft.

Gruß
Thomas