Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Pfad zur XLT-Mustervorlage

Betrifft: Pfad zur XLT-Mustervorlage von: Matthias
Geschrieben am: 24.08.2004 10:12:22

Bei Aufruf einer Mustervorlage (Muster.xlt) wird eine neue Arbeitsmappe (Muster1.xls) angelegt. Bevor diese gespeichert wird, ist die Path-Eigenschaft des Workbook-Objektes leer. Gibt es eine Möglichkeit, aus dem XLS heraus den Pfad zur XLT-Mustervorlage zu bekommen?

  


Betrifft: AW: Pfad zur XLT-Mustervorlage von: K.Rola
Geschrieben am: 24.08.2004 10:14:34

Hallo,

hinterleg den Pfad einfach in einer benutzerdefinierten Dateieigenschaft innerhalb der *.xlt.

Gruß K.Rola


  


Betrifft: AW: Pfad zur XLT-Mustervorlage von: Matthias
Geschrieben am: 24.08.2004 12:26:56

Danke für die Antwort, nur nützt mir das leider nichts: ein so hinterlegter Pfad würde sich bei Verschieben der Datei nicht verändern. Da könnte ich den Pfad genausogut direkt in den Code hineinschreiben.
Es sollte so sein, dass der jeweils (zum Zeitpunkt des Aufrufes) aktuelle Pfad der Mustervorlage eruiert wird.

Wenn jemand ganz sicher ist, dass es NICHT geht, bin ich auch für diese Info dankbar.


  


Betrifft: AW: Pfad zur XLT-Mustervorlage von: K.Rola
Geschrieben am: 24.08.2004 14:13:33

Hallo,

ist immer nützlich, die Aufgabe möglichst komplett zu beschreiben. Trag den Pfad im
Ereignis Workbook_open in die Dateieigenschaft ein.

Gruß K.Rola


  


Betrifft: AW: Pfad zur XLT-Mustervorlage von: Matthias
Geschrieben am: 24.08.2004 15:14:30

Ich nehme an, Du meinst das so:

Private Sub Workbook_Open()
  ActiveWorkbook.CustomDocumentProperties.Add "Ablagepfad", False, _
                 msoPropertyTypeString, "'" & ActiveWorkbook.Path & "'"
End Sub


Weil ich gerade damit gekämpft habe, dass im Ereignis Workbook_open das Objekt Commandbars nicht verfügbar ist, hatte ich schon gehofft, dass hier ev. die Path-Eigenschaft noch den Pfad der Mustervorlage enthält. Leider ist sie aber so leer wie (bei einer noch nicht gespeicherten Mappe) immer.
Dein Vorschlag würde nur dann funktionieren, wenn beim Verschieben des XLT dieses danach immer als XLT geöffnet und wieder gespeichert würde. Das ist aber nicht Sinn der Sache. Das XLT soll eben nicht vom User verändert werden. Ich möchte aber Daten aus dem XLS im Pfad der Vorlage ablegen.
Das scheint wohl doch nicht zu funktionieren.

Ich habe eine Beispieldatei erstellt (https://www.herber.de/bbs/user/10026.xlt): wenn Du die aus Excel heraus als XLT startest, steht der Pfad in den Eigenschaften drin. Bei Doppelklick auf das XLT wird aber ein 100261.xls geöffnet und der Ablagepfad ist leer...


  


Betrifft: AW: Pfad zur XLT-Mustervorlage von: K.Rola
Geschrieben am: 24.08.2004 15:20:20

Hallo,

ich praktiziere das schon länger und hatte damit noch nie ein Problem.

"dass im Ereignis Workbook_open das Objekt Commandbars nicht verfügbar ist"

Das ist verfügbar!

Gruß K.Rola


  


Betrifft: AW: Pfad zur XLT-Mustervorlage von: Matthias
Geschrieben am: 24.08.2004 16:06:17

Was praktizierst Du schon lange? Den Pfad der XLT-Datei in der XLS zu ermitteln oder aus dem Open-Ereignis die CommandBars zu bearbeiten? Bei mir funktioniert beides nicht (weder in Excel 97 SR2 noch in Excel 2002 SP3)

Bitte ganz konkret:
1) Funktioniert mein Code aus der letzten Nachricht bei Dir? Wenn nicht, was habe ich falsch gemacht oder welche Version benutzt Du?

2) Ich bekomme bei folgendem Code immer die Fehlermeldung "Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt". Funktioniert das bei Dir? Ich habe festgestellt, dass es nicht am Zeitpunkt liegt, sondern am Modul: aus dem Modul "Diese Arbeitsmappe" kann ich auf die CommandBars nicht zugreifen.

Private Sub Workbook_Open()
  MsgBox ActiveWorkbook.CommandBars.Count 'beliebiger Zugriff auf CommandBars
End Sub


Gruß Matthias


  


Betrifft: AW: Pfad zur XLT-Mustervorlage von: K.Rola
Geschrieben am: 24.08.2004 17:04:46

Hallo,

du hast meine Antwort vermutlich nicht richtig gelesen oder falsch interpretiert.

In Klassenmodulen, das Modul "DieseArbeitsmappe ist ein Klassenmodul, ist das
defaultobjekt das Objekt selbst. Konkret, du musst Application voranstellen.

Private Sub Workbook_Open()
  MsgBox application.CommandBars.Count 'beliebiger Zugriff auf CommandBars
End Sub


Ich hatte das bei VBA gut vorausgesetzt.

Gruß K.Rola


  


Betrifft: AW: Pfad zur XLT-Mustervorlage von: Matthias
Geschrieben am: 25.08.2004 16:56:34

Danke für die Info.

Die Bemerkung "nicht richtig gelesen" empfand ich allerdings als unfair: Was stand denn bitte in Deiner Antwort drin, was ich übersehen hatte? Und selbst wenn: Ist das ein Grund, auf meine Frage in Punkt 1 (dem eigentlichen Gegenstand dieser Anfrage) gar nicht zu reagieren?

Inzwischen hat es sich aber erübrigt: ich habe von Microsoft die Auskunft bekommen, dass das tatsächlich nicht funktioniert.

Gruß Matthias


  


Betrifft: AW: Pfad zur XLT-Mustervorlage von: K.Rola
Geschrieben am: 27.08.2004 08:58:28

Hallo,

das ist nichts Neues, dass MS nicht genau über die eigenen Produkte informiert ist.
Falls du an einer funktionierenden Lösung weiterhin interessiert bist, stell die Frage
erneut, da dieser thread wohl bald verschwunden sein wird.

Gruß K.Rola