Komilierungsfehler unter WinXP
06.02.2008 10:30:00
Oliver
ich habe mit Excel2000 und Windows2000 Professional eine Datei geschrieben und mit UserForm und einigen Funktionen per Makro´s gefüllt. Nachdem die Datei geladen ist kann man eine UserForm aufrufen in der ich per CommandButton (Makro) eine ShellExecute starte und pdf-Dateien und die dazugehörende Anwendung (Adobe Acrobat) öffne. Das ganze funktioniert auch bei einem Rechner mit Windows XP und SP2. Das Makro hierzu sieht wie folgt aus:
Declare
Function ShellExecute Lib "shell32" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Sub OpenPDF()
ShellExecute 0, _
"Open", _
"T:\Antriebsberechnungsprogramm\Umlenkungen.pdf", _
vbNullString, _
vbNullString, _
vbNormalFocus
End
Sub
Jetzt ist es notwendig geworden, das Programm mobil zu gestalten, so dass es inkl. aller _
Unterverzeichnisse mit pdf-Dateien auch auf ein anderes Laufwerk oder einen anderen Rechner lä _
uft. Also hab ich das Makro geändert, so dass die Unterverzeichnisse direkt angesprochen werden. Unter Win2000 funktioniert das hervorragend, sobald man jedoch nun unter WinXP das Makro anspricht erscheint ein Kompilierungsfehler. Das neue Makro lautet:
Declare
Function ShellExecute Lib "shell32" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Sub OpenPDF()
Dim strPfad As String
strPfad = ThisWorkbook.Path
If Right(strPfad, 1) "\" Then strPfad = strPfad & "\"
strPfad = strPfad & "Umlenkungen.pdf"
ShellExecute 0, _
"Open", _
strPfad, _
vbNullString, _
vbNullString, _
vbNormalFocus
End
Sub
Ich habe jetzt schon alle AddInn´s kontrolliert und abgschaltet, die Verweise im VBA-Editor _
Ref Edit Control unter XP abgeschaltet, aber der Fehler tritt immer wieder auf. Was kann noch _
diesen Fehler verursachen? Für Hilfe bin ich sehr Dankbar.
Viele Grüsse
PointOfView
Hi,
kannst du mal deinen Beitrag in lesbarer Form einstellen, mit Umbrüchen und so?
mfg Knut
Hallo Knut,
Entschuldige bitte meinen unstrukturierten Eintrag. Geht´s so besser? Leider wird das erste _
Declare von diesem Forums-Eingabefenster automatisch aus dem Code heraugestellt (da kann ich leider nix für).
Code mit statischem Verzeichnisbezug (läuft unter Win2000 und WinXP):
Declare
Function ShellExecute Lib "shell32" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Sub OpenPDF()
ShellExecute 0, _
"Open", _
"T:\Antriebsberechnungsprogramm\Umlenkungen.pdf", _
vbNullString, _
vbNullString, _
vbNormalFocus
End
Sub
Code mit statischem Verzeichnisbezug (läuft nur unter Win2000 einwandfrei, bei WinXP kommt _
Kompilierungsfehler):
Declare
Function ShellExecute Lib "shell32" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Sub OpenPDF()
Dim strPfad As String
strPfad = ThisWorkbook.Path
If Right(strPfad, 1) "\" Then strPfad = strPfad & "\"
strPfad = strPfad & "Umlenkungen.pdf"
ShellExecute 0, _
"Open", _
strPfad, _
vbNullString, _
vbNullString, _
vbNormalFocus
End
Sub
Viele Grüsse
Oliver
Hallo Oliver,
mein ExcelXP produziert unter WIN XP bei diesem Code keinen Kompilierungsfehler.
Könntest du bitte mal schreiben, WELCHER Fehler auftritt (Fehlertext und evtl. -nummer)
und IN WELCHER ZEILE des Codes?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
P.S.: Am Beginn dieses Beitrags stehen einige pre-Tags...
Von Oliver am 06.02.2008
Hallo Erich,
die Fehlermeldung lautet: Kompilierungsfehler im verborgenen Modul: UserForm100
Im Modul selbst:
Fehler beim Kompilieren: Projekt oder Bibliothek nicht gefunden.
Der Fehler wird bei:
If Right(strPfad, 1) "\" Then strPfad = strPfad & "\"
beim Wort "Right" markiert.
Viele Grüsse
Oliver