Mittels vba html datei öffnen

hallo zusammen,

ich möchte wenn ich auf einen button drücke eine html datei öffnen, die in einem unterordner von von der excel datei ist. wichtig ist, dass ich den pfad nicht absolut (also C:\blabla…\test.htm) angeben will sondern auf den ort bezogen wo meine excel datei liegt.

habe dazu schon etwas im internet gesucht aber leider funktioniert das bei mir nicht.

Es kommt immer diese Fehlermeldung:
Run-time-error ‚-2147024894 (800700002)‘
Method ‚Run‘ of object ‚IWshShell3‘ failed

mein bisheriger code:

Dim wshshell As Object
Dim destination As String
Set wshshell = CreateObject(„WScript.Shell“)
destination = ThisWorkbook.Path & „\html\test.htm“
wshshell.Run destination

ich hatte auch schon gelesen, dass es an leerzeichen im pfad liegen kann… aber ich hab da ja keine drin…

weis einer da weiter?

vielen dank schon einmal!

wichtig ist, dass ich den pfad nicht absolut (also
C:\blabla…\test.htm) angeben will sondern auf den ort
bezogen wo meine excel datei liegt.

Es kommt immer diese Fehlermeldung:
Run-time-error ‚-2147024894 (800700002)‘
Method ‚Run‘ of object ‚IWshShell3‘ failed

destination = ThisWorkbook.Path & „\html\test.htm“
wshshell.Run destination

Hi shram,

was passiert bei dem Code:

Sub tt()
MsgBox Dir(ThisWorkbook.Path & „\html\test.htm“)
End Sub

Und, passiert das Gleiche bei dir wenn du nicht "destination als Variablennamen nimmst sondern einen unverdächtigeren wie „Mydestination“ oder „Datei“ oder oder…

Gruß
Reinhard

ich hatte auch schon gelesen, dass es an leerzeichen im pfad
liegen kann… aber ich hab da ja keine drin…

weis einer da weiter?

vielen dank schon einmal!

Hallo Reinhard,

was passiert bei dem Code:

Sub tt()
MsgBox Dir(ThisWorkbook.Path & „\html\test.htm“)
End Sub

da kommt dann eine msgbox mit dem inhalt test.htm

Und, passiert das Gleiche bei dir wenn du nicht "destination
als Variablennamen nimmst sondern einen unverdächtigeren wie
„Mydestination“ oder „Datei“ oder oder…

wenn ich nicht destination verwende sondern irgendetwas anderes kommt trotzdem die alte fehlermeldung wieder…

woran kann das liegen?

öffnen, die in einem unterordner von von der excel datei ist.
wichtig ist, dass ich den pfad nicht absolut (also
C:\blabla…\test.htm) angeben will sondern auf den ort
bezogen wo meine excel datei liegt.
Dim wshshell As Object
Dim destination As String
Set wshshell = CreateObject(„WScript.Shell“)
destination = ThisWorkbook.Path & „\html\test.htm“
wshshell.Run destination

Hi Shram,

ich habe keine Unterlagen zu Shellscripts, denke mir aber „Run“ klappt nur bei ausführbaren Dateien wie exe,com,bat…

Mit welchem programm soll denn die htm-Datei geöffnet werden? IE, Firefox, Excel?

Mit Excel:

Sub tt()
Workbooks.Open ThisWorkbook.Path & „\html\test.htm“
End Sub

Gruß
Reinhard

Hi Shram,

ich habe keine Unterlagen zu Shellscripts, denke mir aber
„Run“ klappt nur bei ausführbaren Dateien wie exe,com,bat…

das kann natürlich sein… hmmm…

Mit welchem programm soll denn die htm-Datei geöffnet werden?
IE, Firefox, Excel?

ich möchte die html datei mit opera auf machen bzw. dem standartbrowser der eben installiert ist. da ich das excel dukumet eigentlich nur auf meinem laptop betreiben will könnte man natürlich auch opera starten und die seite aufrufen… nur da weis ich auch net genau wie das dann geht :smile:

vielen dank schon mal für deine schnellen antworten!

gruß
shram

ich möchte die html datei mit opera auf machen bzw. dem
standartbrowser der eben installiert ist. da ich das excel
dukumet eigentlich nur auf meinem laptop betreiben will könnte
man natürlich auch opera starten und die seite aufrufen… nur
da weis ich auch net genau wie das dann geht :smile:

Hi Shram,

probiers mal so(einfache oder doppelte Striche mußte mal austesten):
in deinem alten Code dies einbauen
WSHShell.Run(„C:\Programme\Opera\Opera.exe“ & ThisWorkbook.Path & „\html\test.htm“)

oder so

Sub Htm()
Dim Starte
Starte = Shell(„C:\Programme\Opera\Opera.exe“ & ThisWorkbook.Path & „\html\test.htm“)
End Sub

Gruß
Reinhard

probiers mal so(einfache oder doppelte Striche mußte mal
austesten):
in deinem alten Code dies einbauen
WSHShell.Run(„C:\Programme\Opera\Opera.exe“ &
ThisWorkbook.Path & „\html\test.htm“)

also dabei kommt die alte fehlermeldung wieder…

oder so

Sub Htm()
Dim Starte
Starte = Shell(„C:\Programme\Opera\Opera.exe“ &
ThisWorkbook.Path & „\html\test.htm“)
End Sub

und hier kommt die meldung:

laufzeitfehler ‚5‘

ungültiger prozeduraufruf oder ungültiges argument

ich habe beides jeweils mit einfachen und doppelten slashs versucht… habe auch den pfad c:stuck_out_tongue:rogramme… usw an meine ordnerstruktur angepasst. daran kann es nicht liegen.

noch irgendeine idee?
gruß simon

noch irgendeine idee?

Hi Simon,

ja, aber langsam wirds eng mit den Ideen :smile:

Vielleicht fehlt ein leerzeichen zwischen .exe und der datei, also tausche bitte
„C:\Programme\Opera\Opera.exe“
gegen
"C:\Programme\Opera\Opera.exe "

Normalerweise müßte es gehen daß man Opera gleich beim Starten die URL/Htmldatei mitgeben kann damit es diese beim Starten öffnet.
Da ich kein opera habe kann ich dies nicht testen.

Geh mal bitte auf Start–Ausführen und gib da ein
C:\Programme\Opera\Opera.exe c:\test.htm

Vorher natürlich die htm nach c:\ verschieben.

Wenn das nicht klappt, schau mal in die Operahilfe nach Start Startparameter o.ä.

Äh, den Pfad zu deiener opera.exe und ihre Schreibweise hast du überprüft?
Der Internetexplorer heißt ja auch nicht internetexplorer.exe sondern iexplore.exe…

Gib halt Rückmeldung, wenn alles nix bringt müssen wir halt weiterschauen wie das zu lösen ist.

Gruß
Reinhard

da kommt dann eine msgbox mit dem inhalt test.htm

Und, passiert das Gleiche bei dir wenn du nicht "destination
als Variablennamen nimmst sondern einen unverdächtigeren wie
„Mydestination“ oder „Datei“ oder oder…

wenn ich nicht destination verwende sondern irgendetwas
anderes kommt trotzdem die alte fehlermeldung wieder…

Hi Simon,
meine Rückfrage diente einzig dazu bestimmte Fehlerquellen auszuschließen.
Wenn „Dir“ was anzeigt so stimmt der Pfad und die datei ist vorhanden dort.
Und zu „destination“, ich vermeide grundsätzlich bezeichnungen zu benutzen die Excel-Vba auch benutzt.
Von mir aus kann es 999 von 1000 mal gutgehen daß ich eine Variable dem Namen „Name“ gebe, bietet sich ja an bei Name,Straße,PLZ,Wohnort, würde ich aber nie machen denn Excel Vba kennt auch „Name“ wie bei
Msgbox Activesheet.Name
Ich muß von dem einen Fall von 1000 ausgehen wo es da Probleme geben KÖNNTE.
Einzig deshalb benenne ich dann so: VName oder NName oder Myname oder so.
Ob das übertrieben ist ist mir wurscht, Excel-Vba bietet von sich aus schon genug Stolperfallen da muß ich nicht noch eigene schaffen.

Gruß
Reinhard

ja, aber langsam wirds eng mit den Ideen :smile:

Vielleicht fehlt ein leerzeichen zwischen .exe und der datei,
also tausche bitte
„C:\Programme\Opera\Opera.exe“
gegen
"C:\Programme\Opera\Opera.exe "

das war die lösung… das leerzeichen hatte gefehlt… jetzte geht es!!

SUPER, VIELEN DANK FÜR DEINE BEMÜHUNGEN!!

gruß
simon