Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dynamische Pfade in Makros

171 views
Skip to first unread message

Harald Schäfer

unread,
Aug 2, 2004, 10:02:36 AM8/2/04
to
Hallo Group, ich hab ein Problem, bei dem Ihr mir hoffentlich helfen
könnt.
Als Anfänger mit lediglich leichter VBA-Kenntnis tu ich mich halt noch
schwer.

so, zu meinem Problem:

Ich habe diverse Excel-Dokumente und Access-Datenbanken verknüpft.
Diese starten gegenseitige Abfragen mit übergreifenden Datenzugriffen.
Meist auf der Basis von Makros.
Da ich oft an meinem System bastle ändern sich die
Laufwerksbezeichnungen und Buchstaben öfter. (Bsp. x:\Eigene
Dateien\Excel --> t:\Eigene Dateien\Excel)
bisher musste ich sämtliche Pfade jedesmal ändern und habe regelmässig
die eine oder andere Stelle übersehen.

Meine Vorstellung ist, dass ich die Makros dynamisch anpassen lasse.
Wie bei einem Web-Auftritt alles in dem Ordner gehört dazu. Wo der
ordner sich befindet ist dabei egal.

Ist ein solcher Aufruf machbar?
Wenn ja, wie ist er umzusetzen.

Danke für eure Hilfe!

Greetz!
Harald

Reiner Wolff

unread,
Aug 2, 2004, 11:08:38 AM8/2/04
to
Moin Harald,

> Ich habe diverse Excel-Dokumente und Access-Datenbanken verknüpft.
> Diese starten gegenseitige Abfragen mit übergreifenden Datenzugriffen.
> Meist auf der Basis von Makros.
> Da ich oft an meinem System bastle ändern sich die
> Laufwerksbezeichnungen und Buchstaben öfter. (Bsp. x:\Eigene
> Dateien\Excel --> t:\Eigene Dateien\Excel)
> bisher musste ich sämtliche Pfade jedesmal ändern und habe regelmässig
> die eine oder andere Stelle übersehen.
> Meine Vorstellung ist, dass ich die Makros dynamisch anpassen lasse.
> Wie bei einem Web-Auftritt alles in dem Ordner gehört dazu. Wo der
> ordner sich befindet ist dabei egal.
> Ist ein solcher Aufruf machbar?

Das ist einfach zu beantworten: Ja.

> Wenn ja, wie ist er umzusetzen.

Die Frage ist wiederum gar nicht einfach zu beantworten. Es gibt einfach
viele verschiedene Möglichkeiten:
1.
Du kannst die Pfadangabe in einer Konstanten abspeichern:
Const constVerzeichnis = "T:\Eigene Dateien\Excel"

und in Deinem späteren Programmcode dich darauf beziehen:
xlApp.Workbooks.Open constVerzeichnis & "\Dateiname.xls"

So bräuchtest Du die Pfade nur noch an einer Stelle in Excel und einer
Stelle in Access ändern.

2.
Wenn Dir die 2 Stellen (bei mehreren Dateien wären es natürlich noch mehr)
nicht zusagen oder immer noch zu viele sind, kannst Du die Information auch
zentral woanders abspeichern. ZB in der Registry, in einer INI-Datei oder
in einer Datenbank (wiederum zB in einer MDB). Wie das geht und was davon
problemlos auch bei mehreren Benutzerprofilen funktioniert, kann ich Dir
erzählen, wenn Du an dieser Variante interesse hast.

3.
Du hast evtl. die Möglichkeit den Pfad überhaupt nicht fest einzustellen
und ausschließlich mit "relativen" Bezügen zu arbeiten. Dazu könntest Du
den Speicherort der aktuellen Datei abfragen und in einer Variablen
speichern, die Du dann so benutzt wie die Konstante unter Variante 1:

Dim strVerzeichnis As String
strVerzeichnis = ThisWorkbook.Path
Workbooks.Open strVerzeichnis & "\Dateiname.xls"

Prinzipielles zu Variablen und Konstanten findest Du in der OnlineHilfe.
Ich freue mich auf weitere Nachfragen.
Greetinx aus Kiel
Reiner

--
Ich sei, gewähret mir die Bitte, in eurem Netzwerk der Dritte.
(frei nach Schiller)

Harald Sch?fer

unread,
Aug 12, 2004, 10:03:33 AM8/12/04
to
Reiner Wolff <sp...@wolffsrudel.de> wrote in message news:<1r9ga20kp4iv1$.zdabg9x4rlav$.d...@40tude.net>...

Reiner, Danke!
ich hab jetzt den Dynamischen Pfad eingebaut. Klappt Prima!
Damit lässt sich wesentlich besser arbeiten, als zuvor!

Danke nochmal.

Reiner Wolff

unread,
Aug 12, 2004, 1:03:08 PM8/12/04
to
Moin Harald,

> Reiner, Danke!
> ich hab jetzt den Dynamischen Pfad eingebaut. Klappt Prima!
> Damit lässt sich wesentlich besser arbeiten, als zuvor!
> Danke nochmal.

Freut mich, dass es funktioniert und danke für die Rückmeldung.

Sonnigen Tag noch
Greetinx aus Kiel
Reiner

--
All Computers wait at the same speed !

0 new messages