28.09.2018, 09:10
Hallo zusammen,
hab einen Code zum öffnen einer bestimmten PDF Seite geschrieben, zudem öffnet es sich bei klick (Hyperlink).
Die Seitenzahl steht in der Zelle links vom Link und in der Zelle selbst ist der Pfad inkl. Datei.
hab das Problem das bei vielen meiner Dateien der Link auf die PDF Seite funktioniert, allerdings auch bei einigen nicht.
Diesen Fehler kann ich mir nicht erklären.
Vielleicht könnt ihr mir weiterhelfen
Es handelt sich um einen Laufzeitfehler '13': Typen unverträglich
und der Debugger schickt mich in diese Linie: OpenPDF Target.Parent.Value, Target.Parent.Offset(0, -1).Value
Danke für jeden Versuch
hab einen Code zum öffnen einer bestimmten PDF Seite geschrieben, zudem öffnet es sich bei klick (Hyperlink).
Die Seitenzahl steht in der Zelle links vom Link und in der Zelle selbst ist der Pfad inkl. Datei.
hab das Problem das bei vielen meiner Dateien der Link auf die PDF Seite funktioniert, allerdings auch bei einigen nicht.
Diesen Fehler kann ich mir nicht erklären.
Vielleicht könnt ihr mir weiterhelfen
Code:
in der Tabelle:
Option Explicit
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
OpenPDF Target.Parent.Value, Target.Parent.Offset(0, -1).Value
End Sub
modul1:
Sub AddHyperLinks()
Dim x As Integer
Dim y As Integer: y = get_last_row("Tabelle1", 22)
Dim id As String
Dim name As String
For x = 3 To y
id = Cells(x, 1)
name = Cells(x, 2)
With ThisWorkbook.Sheets("Tabelle1")
.Hyperlinks.Add Anchor:=.Range("V" & x), _
Address:=""
End With
Next x
End Sub
Function get_last_row(sheetname As String, column_number As Integer) As Long
get_last_row = Sheets(sheetname).Cells(Rows.Count, column_number).End(xlUp).Row
End Function
modul2:
Option Explicit
Function OpenPDF(sFile As String, _
Optional page)
On Error GoTo Error_Handler
Dim WSHShell As Object
Dim sAcrobatPath As String
Dim sParameters As String
Dim sCmd As String
'Determine the path to Acrobat Reader
Set WSHShell = CreateObject("Wscript.Shell")
sAcrobatPath = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AcroRd32.exe\")
'Build our parameters
If Not IsMissing(page) Then
If Len(sParameters) = 0 Then
sParameters = "page=" & page
Else
sParameters = sParameters & "&" & "page=" & page
End If
End If
'Open our PDF
If Len(sParameters) = 0 Then 'No parameters
Shell sAcrobatPath & " " & Chr(34) & sFile & Chr(34), vbNormalFocus
Else 'Parameters
'Open the file using Shell (no prompt)
sCmd = sAcrobatPath & " /A " & Chr(34) & sParameters & Chr(34) & " " & Chr(34) & sFile & Chr(34)
Shell sCmd, vbNormalFocus
' 'Open the file using FollowHyperlink (user will get prompts)
' sCmd = Replace(sFile, "\", "/") & "#" & sParameters
' Application.FollowHyperlink sCmd
End If
Error_Handler_Exit:
On Error Resume Next
Set WSHShell = Nothing
Exit Function
Error_Handler:
MsgBox "The following error has occured." & vbCrLf & vbCrLf & _
"Error Number: " & Err.Number & vbCrLf & _
"Error Source: OpenPDF" & vbCrLf & _
"Error Description: " & Err.Description, _
vbCritical, "An Error has Occured!"
Resume Error_Handler_Exit
End Function
Es handelt sich um einen Laufzeitfehler '13': Typen unverträglich
und der Debugger schickt mich in diese Linie: OpenPDF Target.Parent.Value, Target.Parent.Offset(0, -1).Value
Danke für jeden Versuch