Wer weiss weiter....Ordner erstellen und wiederfinden...

pinocc

Grünschnabel
Hi, ich habe ein paar Problemchen, vielleicht wisst ihr eine Antwort auf meine Fragen...

Ich benötige ein Ablauf, der aus einer Excel-Datei heraus weitere Exceldateien und auch Worddokumente steuert. Die Basisdatei soll dabei die weiteren Datein ausdrucken. Das habe ich mit folgendem gemacht:

Sub PrintWordDocument()
Dim appWD As Object
Set appWD = GetObject("c:\weitere dokumente")
appWD.PrintOut
End Sub

Vor dem Drucken, das über Steuerelemente aus der Basisdatei gestartet wird, soll jetzt aber ein Ordner erstellt werden, mit einem Zellinhalt als Dateinamen. Durch die super Tips :-) hier aus dem Forum weiß ich auch schon wie:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveWorkbook.SaveAs FileName:=Cells(1, 1)
End Sub

Jetzt weiß ich aber nciht weiter...ich möchte, dass jetzt nacheinander alle weiteren Datein und die Basisdatei in diesen erstellten Ordner gespeichert werden, und zwar die Dateien, die ich ausdrucke. Gibt es irgendeine Möglichkeit, dass ich den anderen Dateien den Speicherpfad angebe, der zu dem kurz vorher erstellten Ordner führt? Der Zelleninhalt - der Ordnername - ist immer unterschiedlich, weil ich auch noch das Date eingebaut habe...Bei mir hat nichts funktioniert, alle Versuche gescheitert. :mad:
Bitte um Hilfe
 
Ist so etwas überhaupt möglich? Falls jemand eine Idee dazu hat, wäre ich sehr dankbar für eine Antwort ;)
 
Verständnisproblem!

Ganz ehrlich, ich verstehe das ganze nicht, versuche das ganze mal mit eigenen worten wiederzugenen:
1.) Ist es so, dass du eine "Basisdatei" hast, die in einem Tabellenblatt eine Auflistung von Dateinamen beinhaltet? Du möchtest nun aus dieser "Basisdatei" herraus die einzelnen Dateien ausdrucken, bevor sie aber gedruckt werden, sollen sie noch in dem Ordner gespeichert werden, der vor dem drucken der ersten Datei erstellt wurde?

oder aber
2.) Ist es so, dass du eine "Basisdatei" hast, die in einem Tabellenblatt eine Auflistung von Dateinamen beinhaltet? diesen Dateien soll nun ein neuer "standartspeicherpfad" zugewiesen werden, werden sie dann irgendwann einmal ausgedruckt, sei es aus der Basisdatei herraus oder aber manuell aus der jeweiligen Datei, so sollen sie vorher unter dem neu erstellten ordner gespeichert werden?

das sind meine beiden Interpretationen.
Zur Erfolgsaussicht:
Möglichkeit 1.) lässt sich relativ einfach lösen!
Möglichkeit 2.) ist nicht unmöglich, aber verlang nach besonderen Kenntnissen. Dies lässt sich meines Erachtens nur lösen, in dem man in die jeweiligen Dateien ein "Makro", besser: ein "BeforePrint" ereigniss hineinschreibt.

Helfe dir hier gerne weiter
gruß
thekorn
 
Hi,

danke für die Verständnis-Anfrage.

Der erste Punkt triffts glaub ich. Ich möchte alle Datein, die ich aus der ersten xls-Datei ansteuere, ausdrucken können(alle Datein sind über verknüpfungen inhaltlich mit der Basisdatei verbunden und aktualisieren sich durch Änderungen im Basisdokument). Alles wird über diese Basisdatei gesteuert (Druck, SPeichern, Verknüpfungen aktualisieren, etc.). Also auch das Speichern. Bevor der Druck des ersten Dokuments aktiviert wird, soll die basisdatei einen Ordner erstellen, und die gedruckten Datein darin speichern...

Wenn dies "eher einfach" ist, bin ich auf ne Lösung gespannt. :)

Vielen Dank vorab!
 
sorry

sorry habe den thread aus dem Auge verloren, wenn ich zu hause bin werde ich mal über alles nachdenken!

gruß
thekorn
 
Ok, dann bin ich auf eine Antwort gespannt. Bin mit dem Problem nämlich leider immer noch nicht weiter gekommen.

mfg.
 
Versuch es mal hiermit:

Code:
Dim druck_ordner As String
Dim Ziel_pfad As String
Dim Quell_pfad As String

Sub PrintDocument(datei)
Dim appWD As Object

datei1 = Quell_pfad & datei
Set appWD = GetObject(datei1)
datei = druck_ordner & "\" & Left(datei, Len(datei) - 4) & "_gedruckt"
MsgBox (datei)
appWD.SaveAs Filename:=datei
appWD.PrintOut
appWD.Close
Set appWD = Nothing
End Sub

Public Sub ordner_ex(pfad As String)
On Error GoTo ordner_erstellen
    ChDir pfad
    MsgBox ("pfad existiert")
    druck_ordner = pfad
    Exit Sub
ordner_erstellen:
    MkDir pfad
    MsgBox ("pfad wurde erstellt")
    druck_ordner = pfad
End Sub



Public Sub drucken()
Quell_pfad = "c:\quelle" 'optional auch Zellenbezug z.b. sheets(1).cells(1,1)
Ziel_pfad = "c:\ziel" 'optional auch Zellenbezug z.b. sheets(1).cells(2,1)
ordner_ex (Ziel_pfad)
For Each datei In Sheets("tabelle1").Range("Dateien") 'WICHTIG: ES muss ein Bereich Dateien definiert sein (EINFÜGEN->NAME->DEFINIEREN...), in dem die Dateien stehen.
    PrintDocument (datei)
Next
End Sub

Besteht die Dateiliste nur aus Exceldatein funktioniert alles. Das Handling der Worddokumente und bel. anderer Dateien muss verbessert werden.

gruß
thekorn
 
Wow, viiiielen Dank für den Script. Und es funktioniert. Komischerweise besser mit Word als Excel. Habe zwar noch ein paar Kleinigkeiten, vielleicht werde ich da in den nächsten Tagen aber nochmal ein Thema auf euch losjagen. :)

Bis die Tage,
Pino
 
Hi, ich bin mit dem Thema jetzt auf ein weiteres, kleineres Problem gestoßen. Die Dateien, die mit dem Basisdakument gesteuert werden, werden nach dem Drucken direkt gespeichert. Ein spezieller, variabler Ordner wird dafür zeitgleich angelegt.

(!) Problem: Da die vielen Zusatzdateien, die durch das Basisdokument gesteuert werden (Word+Excel) nicht gleichzeitig ausgedruckt werden, sondern erst nach Button_click, gibt es Probleme mit meiner Syntax:

Code:
Private Sub ComandButton6_Click()

pfad = "D:\Briefax\"
Endung = ".xls" 'oder .doc
pfad2 = Cells(24,2) 'Variabler Inhalt aus basisdatei als Speichernamen
pfad3 = Cells(7,2)

Dim appWD As Object
Set appWD = GetObject(Zusatzdatei1) 
appWD.PrintOut
  On Error GoTo ordner erstellen
  ChDir "D:\Birefax\" & Cells(7,2)
  GoTo weiter_im_Text
Ordner_erstellen:
  MkDir „D:\Briefax\“ & Cells(7,2) 
weiter_im_text:
  datei = pfad & pfad3 & „\“ & pfad2 & Endung
  appWD-SaveAs Filename:=datei

appWD.Close
Set appWD = Nothing
End Sub

Falls der Ordner bereits existiert, und evtl. die Datei (= pfad & pfad3 & „\“ & pfad2 & Endung) auch schon excistiert, fragt er natürlich, ob die Datei überschrieben werden soll. Leider springt er nach "OK" oder "Nein" zurück auf Ordner_erstellen, und will einen Ordner erstellen. Das ist natürlich so nicht möglich - ein Bug. :(

Warum das? Gibt es dafür irgendeine Lösung? Sowie die erste Zusdatzdatei gedruckt (also auch gespeichert) wurde, können die anderen Zusatzdateien nicht mehr in diesen Ordner gespeichert werden - bzw. gibt es eine Fehlermelung... :confused:

Danke schon mal vorab für Eure Info.

Pino.
 
Zurück