Hallo!
Hab eine Notlösung gefunden, die zumindest bei Excel 2000 und XP funktioniert. Es geht nur, wenn die Web-Symbolleiste aktiviert ist. Dann kann man unter Workbook_Open() den Text in der Adressleiste auslesen, da diese am Anfang den Dateipfad der Template-Datei anzeigt. Wenn man den Dateinamen abschneidet, dann hat man den Ordnerpfad. Problem: Wenn die Web-Symbolleiste nicht aktiviert ist, hilft es auch nicht sie unter Workbook_Open() zu aktivieren. Außerdem funktioniert es bei Excel 2003 nicht mehr :(
Ich denke, dass es doch trotzdem irgendwo die Info vorhanden ist, aufgrund welcher Vorlage, die Datei erstellt wird. Schließlich ist der vordefinierte Dateiname VorlagenName1.xls. Also muss Excel ja doch irgedwie wissen, wo sich die aufgerufene Vorlage befindet, also muss man das auch irgendwie auslesen können.
@Roland: Ich hoffe, dass du nicht Excel 2003 benutzst :)
Grüße
Roland schrieb am 02.02.2008 12:49:17:
Hallo Neuling123
Ich verstehe dein Problem sehr gut, denn, ich habe das Gleiche Problem. @Holger: Natürlich kenne ich den Pfad der Vorlage die ich gerade öffne, aber, Excel wechselt sofort den Pfad des aktuellen Verzeichnisses beim öffnen einer xlt-Datei in das voreingestellte Arbeitsverzeichnis. Es sollte jedoch eine Möglichkeit geben um den Ort der geöffneten Vorlagedatei zu ermitteln um, z.B. wie ich es tun möchte, eine Datenbank die sich in der selben Verzeichnisstruktur als die Vorlage es ist befindet und angesprochen werden soll. Diese kann grundsätzlich irgendwo auf dem Rechner oder im Netz sein. Leider suche ich auch schon vergeblich in allen möglichen Foren, Büchern und der MSDN vergeblich. Wenn man die Datei als xls-Datei verwendet funktioniert das Ganze, das Problem liegt also im Excel selbst. Eventuell kann man temporär den Arbeitspfad von Excel umstellen (durch vba-Code) und dann wieder zurückstellen in default....nur wie???
Wenn ich was gefunden habe werde ich es hier rein tippsel, nur bis dato leider negativ :-(
Gruß
Neuling123 schrieb am 16.01.2008 15:07:52:
Es geht in die richtige Richtung: Ich will diesen Pfad als Standard in einem Textfeld haben. In der Regel liegt im selben Ordner auch eine andere Anwendung, die ich aus Excel per VBA anspreche. Damit man die Anwendung nicht lange suchen muss, soll in dem Textfeld, in dem der Pfad für die Anwendung drin steht, standardmäßig gefüllt werden eben mit dem Pfad, aus welchem die Vorlage "doppelgeklickt" wurde.
Danke schon mal für die Mühe, weil bisher habe ich nichts gefunden. Ich will auch nicht nach der Vorlagedate per FileSearch oder so suchen und dann den Pfad ablesen. Ich denke, dass es da eine einfachere Lösung geben muss.
Gruß!
Holger schrieb am 16.01.2008 14:57:45:
Hallo Neuling,
ich verstehe dein Problem nicht. Du hast doch die Vorlage aufgerufen - also kennst du doch ihren Pfad. Oder willst du einen Vorschlag anzeigen lassen, unter dem die mit der Vorlage erzeugte Arbeitsmappe gespeichert werden soll?
Gruß
Holger
Neuling123 schrieb am 14.01.2008 15:30:06:
Hallo an alle!
Ich bin neu hier, habe aber folgendes Problem:
Ich habe eine Excel-Vorlage erstellt (C:\Vorlage.xlt). Beim Doppelklick wird mit Hilfe dieser Vorlage eine neue Datei erstellt, z.B. Vorlage1.xls. Diese Datei ist natürlch noch nicht gespeichert. Ich möchte per VBA den Dateipfad (oder Ordnerpfad) der benutzten Vorlage auslesen.
Application.ThisWorkbook.Path liefert "", da die Datei noch nicht gespeichert ist.
Application.TemplatePath liefert den Standard-Pfad für Excel-Vorlagen.
Ich hoffe, mir kann jemand helfen! Danke! |