Excel ändert in Vorlage den Pfad zu einem Makro?

Hallo,

habe folgendes Problem mit Excel 2003 unter WinXP. In einer Excel-Vorlage *.xlt ist ein Makro eingebunden (DieseArbeitsmappe). Der Aufruf des Makros erfolgt über ein Symbol in der Dateileiste.
Beim Aufruf der Vorlage (Doppelklick) und anschließendem Abspeichern unter einem anderen Namen als .xls schreibt Excel den Pfad zu dem Makronamen nicht nur in das Symbol der neuen Datei (.xls) sondern auch zurück in die Vorlage!!! Dort steht dann beim nächsten Aufruf der Pfad zu der vorherigen .xls.
Woran kann das liegen?

Tut mir Leid, mit Vorlagen kenne ich mich nicht aus.
Rainer

Hallo g__k
Leider kann ich Excel3 und WinXP nicht mehr testen, habe auf neue Version umgestellt.
Die Vorlagen habe ich im neuen System noch nicht etabliert, ich befürchte, dass ich dir derzeit nicht helfen kann.
Vielleicht hilft dir, die Datei und das Makro unter einem neuen Namen zu speichern.
Ich bitte um Entschuldigung, Excel werde ich wohl besser auf „Anfänger“ abändern.
LG Kermit

Da bin ich leider überfragt

Hallo g_k,

da kann ich leider nicht helfen dafür bin ich nicht Experte genug.

Gruß Hugo

im moment bin ich nicht in der lage, einen rat zu geben. ich habe die frage aber auch noch nicht wirklich verstanden. wie könnte ich das problem auf meinem rechner reproduzieren?

Hallo,
danke für die Antwort.
Reproduzierbar sollte das sein:

  • Macro erstellen in Excel Tabelle
  • rechte Maus in Menu-Zeile, Anpassen, Befehle, Makros
  • Benutzerdefinierte Schaltfläche in Menuzeile ziehen
  • rechte Maustaste auf das neue Symbol, Makro zuweisen, das erstellte Makro auswählen
  • speichern der Exceltabelle als Vorlage xyz.xlt
  • Excel mit Doppelklick auf xyz.xltl öffnen, etwas eingeben (ist egal), Speichern unter abc.xls
  • wieder Doppelklick auf xyz.xlt
  • rechte Maustaste auf neues Symbol, Anpassen Popup Fenster offen lassen
  • rechte Maustaste nochmal auf das Symbol, Makro zuweisen anwählen
    Jetzt steht in dem Pfad zum Makro der Name der vorher gespeicherten Datei abc.xls anstatt des Pfads zu xyz.xlt. Und damit findet Excel natürlich das Makro nicht!
    Ich hoffe, das war trotz der Kürze zu verstehen :smile:

dank deiner ausführlichen anleitung konnte ich das phänomen gut reproduzieren!

schaltflächen in menüleisten speichert excel in der datei excel11.xlb, bei mir unter windows 7 im verzeichnis C:\Users\Petersen\AppData\Roaming\Microsoft\Excel

diese schaltflächen tauchen dann immer auf, also beim aufruf jeder datei (habe gerade mühe, deine schaltfläche wieder zu löschen). unter excel11.xlb wird dann wohl immer die letzte gespeicherte datei als ort für das makro hinterlegt.

es ginge also darum, excel11.xlb zu manipulieren, nicht die xlt-datei. ob das möglich ist, kann ich im moment nicht überblicken. aber vielleicht ist dies ja ein tip für dich.

habe mal rumprobiert.

  1. datei meinmakro.xls angelegt, meinmakro geschrieben, im vbe „VBAProjekt“ unter eigenschaften umbenannt in „meinmakro“. datei speichern, noch nicht schließen.
  2. datei xyz.xlt angelegt, neue symbolleiste erzeugt, dort (also nicht im menü) neue schaltfläche erzeugt und meinmakro zugewiesen. außerdem im vbe unter extras verweis erzeugt auf meinmakro.xls (durchsuchen)
  3. wenn ich jetzt unter abc.xls speichere, bleibt verweis bestehen. wenn meinmakro.xls nicht offen ist, wird meinmakro.xls (im hintergrund) geöffnet.

dank dir für die Mühe. Das werde ich mir mal ansehen, scheint aber ein echter Fehler zu sein. Ich kann mir nicht vorstellen, wann dieser Pfad (zur letzten gesp. Datei) Sinn macht.

danke, für die Info.
Da ich das Makro aus der Vorlage an eine daraus erstellte xls „mitgeben will“, komme ich damit aber nicht weiter.

Hallo,

ich habe Ihr Problem nachgestellt. Sie haben Recht.
In der Vorlage ist zunächst dem Makro kein Pfad zugeordnet, das das Makro ja zur Vorlage gehört.
Wenn man nun die Vorlage im .xls-Format speichert, wird dem Makro in der .xlt-Vorlage der Pfad der .xls-Datei hinzugefügt, die man zuvor gespeichert hat. Dies ist wirklich merkwürdig und auch unsinnig.
Ich habe das Gleiche dann auch noch mit Excel 2010 getestet. Also Vorlage mit Makro erstellt, als .xltm gespeichert, das ist das „Vorlage mit Makro“-Format von Excel 2010. Dann als „normale“ Excel 2010-Datei im .xlsm-Format gespeichet. Das Problem besteht hier nicht, d.h. es wird dem Makro in der .xltm-Vorlage kein Pfad hinzugefügt.
Komplett merkwürdig ist aber folgendes:
Wenn ich jetzt wieder die „alte“ Excel 2003 Vorlage (.xlt) öffne, dann steht bei dem Makro wieder ein neuer Pfad, und zwar, raten Sie mal, der Pfad der Excel-2010 Datei, die ich zuvor abgespeichert hatte.
Es wurde also der Makro-Pfad geändert, obwohl Excel 2003 überhaupt nicht geöffnet war.
Das bedeutet, dass der Makro-Pfad nicht direkt in der Vorlage-Datei, sondern in einer speziellen Settings-Datei von Excel gespeichert wird. Und diese Settings-Datei wird anscheinend von Excel 2003 und Excel 2010 gemeinsam verwendet.
Ich kann Ihnen leider keine direkte Lösung für Ihr Problem sagen. Nur, dass das Problem wohl mit Excel 2010 nicht mehr auftritt. Ich kann aber verstehen, dass Sie lieber mit Excel 2003 arbeiten wollen.

Hallo g__k,

ich vermute, dass du irgendwo in deinen Makros das Erzeugen/Anpassen der Symbole in den Menü/Buttonleisten nicht korrekt steuerst.

Aber ohne Kenntnis der Dateien/Makros kann man nichts konkretes sagen.
Da ich „nur“ noch mit Excel 2010 arbeite kann ich auch nicht weiterhelfen, da Excel 2010 in den Menüs und Schaltflächen komplett anders gestrickt ist.

Gruß
Franz

zum thema „mitgeben“:
mitzugebende makros im modul1
folgendes makro in modul2

Sub neuemappe()

'Modul1 in modul.txt exportieren
With ThisWorkbook
pfad = .Path & „\modul.txt“
.VBProject.VBComponents(„Modul1“).Export pfad
End With

'Modul1 aus modul.txt importieren
With Workbooks.Add
.VBProject.VBComponents.Import pfad
End With

End Sub

1 Like

Vielen Dank an alle,

ich starte jetzt das Macro über einen eingebundenen Command-Button. Das ist zwar nicht schön, macht aber keinen Aufwand und funktioniert so, wie ich es benötige.
Warten wir also auf den breiten Einsatz von Excel 2010, dort ist es ja wohl behoben, wie nils1 festgestellt hat. Danke nochmal für die Hilfe.