1.6k Aufrufe
Gefragt in Tabellenkalkulation von peko Mitglied (235 Punkte)
Hi alle!

Ein (jedenfalls für mich) ganz schwieriges Problem:

Die Datei "ziel.xls" im Verzeichnis ".....\klasse" enthält das Makro "ListeDrucken", das folgendes leistet:

1. Die Daten werden nach festgelegtem Schlüssel sortiert.
2. Der Druckbereich wird festgelegt.
3. Die Daten werden ausgedruckt.

Das Makro arbeitet einwandfrei. Nun rufe ich das Makro aus der Datei "start.xls", die sich im gleichen Verzeichnis ".....\klasse" befindet, mit folgendem Makro auf:

Sub Drucken()
zieldatei = "ziel.xls"
Workbooks.Open zieldatei
mak = zieldatei & "!ListeDrucken"
Application.Run mak
usw.
End Sub

Auch das funktioniert einwandfrei. Aus bestimmten Gründen muss aber die Datei "start.xls" in einem anderen Verzeichnis stehen als die Datei "ziel.xls".

Natürlich habe ich dann

zieldatei = "ziel.xls"

ersetzt durch:

zieldatei = ".....\klasse\ziel.xls"

Und hier stellt sich dann das Problem ein: Beim Aufruf von SubDrucken wird wie gewollt auf "ziel.xls" zugegriffen. Die Punkte 1 und 2 (siehe oben) werden auch erledigt, aber es wird nicht gedruckt! Es gibt auch keine Fehlermeldung!

Hilfe !!!!!

Liebe Grüße
Peter

5 Antworten

0 Punkte
Beantwortet von
Hallo Peter,
ist die Zieldatei auch offen und aktiv?

Gruß
fedjo
0 Punkte
Beantwortet von peko Mitglied (235 Punkte)
Na klar ist die Zieldatei offen, Teile werden ja auch abgearbeitet.

Gruß
Peter
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all

am besten im vbed mit f8 schrittweise vorgehen

zu beachten waere vielleicht noch das der focus bzw bezug wahrscheinlich auf der zuletzt geoeffneten mappe liegt

gruss nighty
0 Punkte
Beantwortet von
Hallo Peter,
wenn das Makro in der Tabelle1 der Zieldatei steht, dann vielleicht so:
Application.Run "Zieldatei.xls!Tabelle1.ListeDrucken"

Gruß
fedjo
0 Punkte
Beantwortet von peko Mitglied (235 Punkte)
Hi alle,

vielen Dank an alle, die sich bemüht haben. Hat mir leider nicht geholfen.

Inzwischen habe ich es herausgefunden:

Ein Makro lässt sich nicht aufrufen, wenn man sich nicht in dem Verzeichnis befindet, in dem auch die Datei steht.

Deshalb: zuerst mir CHDIR ... das Verzeichnis der Zieldatei aufrufen, danach klappt es!

Liebe Grüße
Peter
...