2 Schleifen - Wo ist mein Code fehlerhaft?
16.11.2014 18:55:59
Michael
ich habe eine Excel-Datei mir folgendem Inhalt:
Zelle B1: Zelle zur Pfadeingabe
Zellen B2 bis E2: Ländernamen
Zellen B3 bis E3: Zusatzinformation
Ziel soll es sein, wenn ich in irgend eine Zelle (außer die oben aufgeführten) ein Datum eintrage, soll im Pfad, der in Zelle "B1" steht, eine PDF-Datei geöffnet werden, die als Dateinamen Land+Zusatz hat.
folgender Code funktioniert 100%ig, wenn ich nur die erste Zele von "Land" und "Zusatz" ansteuere:
#If Win64 Then
Private Declare PtrSafe Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As LongPtr) As LongPtr
Private Declare PtrSafe Function GetDesktopWindow Lib "user32" () As LongPtr
#Else
Private Declare Function ShellExecute Lib "shell32.dll" _
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
Private Declare Function GetDesktopWindow Lib "user32" () As Long
#End If
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lngR As Long
Dim lngC As Long
lngR = ActiveCell.Row
lngC = ActiveCell.Column
If IsDate(Range(Cells(lngR, lngC), Cells(lngR, lngC))) = True Then Call plan01
End Sub
Private Sub plan01()
Dim lngR As Long
Dim lngC As Long
lngR = ActiveCell.Row
lngC = ActiveCell.Column
Pfad = Range("B1")
Land = Range("B2")
Zusatz = Range("B3")
xxx = "" & Pfad & "\" & Land & Zusatz & ".pdf"
If Dir(xxx) "" Then
ShellExecute 0, "open", xxx, "", "", SHOWMAXIMIZED
Else
MsgBox "Falsch"
End If
End Sub