Microsoft Excel

Herbers Excel/VBA-Archiv

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

Absoluten Pfad finden

Betrifft: Absoluten Pfad finden von: Stephan
Geschrieben am: 10.09.2014 13:09:25

Hallo zusammen,

ich betrete relatives Neuland beim VBA-Programmieren, habe aber mein Makro fertigstellen können.

Und vor lauter Freude bekomme ich jetzt das letzte Problem nicht in den Griff.

Ich habe die Excel-Datei und eine .vbs Datei auf dem Desktop. Natürlich ist der absolute Pfad auf den unterschiedlichsten rechnern nicht gleich.
nun will ich realisieren, dass das Programm geöffnet wird, unabhängig in welchem Ordner es ist. Natürlich sind beide Dateien in ein und dem selben Ordner!

Hier mal meine .vbs-Datei und der Code dazu:
dim xlApp
set xlApp = CreateObject("Excel.Application")
xlApp.Visible=false
xlApp.Workbooks.Open(ThisWorkbook.Path & "\" & "Dauerkarten1415.xlsm")
xlApp.Run "Dauerkarten"

Ich gehe davon aus, dass Meine Quelle "ThisWorkbook.Path" nicht stimmt, aber genau weiß ich das leider nicht.

Wer kann mir Helfen?

Vielen Dank schonmal

  

Betrifft: AW: Absoluten Pfad finden von: Daniel
Geschrieben am: 10.09.2014 13:17:15

Hi
warum machst du eine neue Excelinstanz auf?
das ist nicht erforderlich.

wenn du mit RUN "Makroname" ein Makro aus einer anderen Datei startent willst, dann musst du den Dateinamen beim Aufruf mit angeben: RUN"'Dateiname'!Makroname"

probiere mal folgenden Code:

Workbooks.Open ThisWorkbook.Path & "\" & "Dauerkarten1415.xlsm"
Application.Run "'Dauerkarten1415.xlsm'!Dauerkarten"
Gruß Daniel


  

Betrifft: AW: Absoluten Pfad finden von: Stephan
Geschrieben am: 10.09.2014 13:26:35

Hallo Daniel,

ich hab den Code so auch nur im Internet gefunden. habe zwar verstanden was die einzelnen zeilen aussagen aber weiter komme ich nicht.

In dem Makro sind Userforms programmiert und ich will ja die Excel-Datei mit öffnen, weil ich durch die UserForms was in der Tabelle ausfülle und da ich nicht will, dass die Tabelle mit aufpoppt habe ich den Code so genommen.

Deinen Code habe ich eingefügt, leider funktioniert er nicht. Auch hier sagt er mir
Fehler: Quelle erforderlich "ThisWorkbook"


  

Betrifft: AW: Absoluten Pfad finden von: Daniel
Geschrieben am: 10.09.2014 13:41:01

Hi
THISWORKBOOK ist die Datei in der sich der Code befindet.
damit das funktioniert und die Datei auch einen Dateipfad hat, musst du erstmal speichern.
Gruß Daniel


  

Betrifft: AW: Absoluten Pfad finden von: Stephan
Geschrieben am: 10.09.2014 13:48:30

Hi

ja das habe ich natürlich gemacht. Hilft vielleicht weiter, dass die Datei

dauerkarten.vbs
auf dem Desktop nur dazu da ist, das Macro in der Excel-Tabelle

dauerkarten1415.xlsm
zu öffenn und zwar so, dass die Excel-Datei nicht aufpoppt. Vielleicht bin ich ja mit meinem Code auf dem ganz falschen weg...

Gruß Stephan


  

Betrifft: AW: Absoluten Pfad finden von: Daniel
Geschrieben am: 10.09.2014 13:56:05

Hi
dann steht das Makro nicht in einer Excel-Datei, sondern in einem VBS-Script.
Damit kenne ich mich leider nicht aus und kann dir nicht sagen, wie du den Pfad des VBS-Scripts ermittelst, vermutlich auf ähnliche weise, aber mit anderer Bezeichnung.

schau mal, was dir die Intellisense anbietet, wenn "THIS" eingibst und dann ALT+LEER tippst.
dann müssten die möglichen Befehle und Objekte gelistet werden.
in Excel heißt die Datei "ThisWorkbook", in Word "ThisDocument", vermutlich heißt es in VBS dann ähnlich.

wenn du mit VBS arbeitest dann musst du natürlich auch erst die Excelapplication erstellen, so wie du es in deinem Code ursprünglich vorhattest.
ich bin davon ausgegangen, dass der Code in einer Exceldatei steht.

Gruß Daniel


  

Betrifft: AW: Absoluten Pfad finden von: stephan
Geschrieben am: 10.09.2014 15:44:42

Hi,

trotzdem vielen Dank. hab leider noch keine Lösung gefunden, aber ich bin optimistisch.


  

Betrifft: AW: Besser in einen VBS-Forum fragen.. owt von: Daniel
Geschrieben am: 10.09.2014 16:06:33


Gruß Daniel


  

Betrifft: VBS oder VBA? von: Luc:-?
Geschrieben am: 10.09.2014 13:44:35

Hallo, Stephan;
zwischen VBScript und VB for Applications besteht ein Unterschied! Was ist es nun?
Gruß, Luc :-?


  

Betrifft: AW: Absoluten Pfad finden von: Ewald
Geschrieben am: 10.09.2014 23:07:36

Hallo,

normalerweise geht es anders herum, mit der vbs wird die Datei mit der Userform gestartet und von dort wird dann die Datei geöffnet.

Üblich ist auch bei Weitergabe von vbs und Exceldatei den Installationsort entweder vorzugeben oder eine Exe zu erstellen,welche die Dateien dort installiert.

Hier mal ein Script wie ich es selber verwendet habe.

Dim vntVersion, vntPath, vntShellObject

Set vntShellObject = WScript.CreateObject("WScript.Shell")

On Error Resume Next

For vntVersion = 15 To 9 Step -1 'Excel 2013 - Excel 2000
    vntPath = vntShellObject.RegRead("HKLM\SOFTWARE\Microsoft\Office\" & _
        vntVersion & ".0" & "\Excel\InstallRoot\Path")
    If vntPath <> "" Then Exit For
Next

If vntPath <> "" Then
Application.Screenupdating = False
   If vntversion > 11 Then
    vntShellObject.Run """" & vntPath & "Excel.exe" & """" & " " & """" & _
        "C:\WM2014\StartWM.xlsm" & """", 0, False
   Else
   MsgBox "Alte Dateiformate (xls) werden aus Sicherheitsgründen nicht mehr unterstützt"
   End If
Else
    MsgBox "Kein Excel installiert", 16, "Fehlende Installation"
End If
Application.Screenupdating = True
Set vntShellObject = Nothing
gruss Ewald


  

Betrifft: AW: Absoluten Pfad finden von: Anton
Geschrieben am: 12.09.2014 10:31:45

Hallo Stephan,

wenn ich dich richtig verstanden habe, dann so:

absPfad = WScript.ScriptFullName
pos = InstrRev(absPfad,"\")
dim xlApp
set xlApp = CreateObject("Excel.Application")
xlApp.Visible=false
xlApp.Workbooks.Open(left(absPfad,pos) & "Dauerkarten1415.xlsm")
xlApp.Run "Dauerkarten"

mfg Anton


 

Beiträge aus den Excel-Beispielen zum Thema "Absoluten Pfad finden"