Microsoft Excel

Herbers Excel/VBA-Archiv

Range für das Objekt ... fehlgeschlagen

Betrifft: Range für das Objekt ... fehlgeschlagen von: Michael
Geschrieben am: 18.11.2014 11:18:36

Hallo,

noch immer habe ich Probleme mit meiner kleinen Excel-Datei und den beiden Schleifen.
Ich hatte Ende letzter Woche schon einen Beitrag dazu geschrieben, nur kann ich -aus mir nicht bekannten Gründen- da nicht mehr weiterschreiben.

Hier die Datei:
https://www.herber.de/bbs/user/93847.xls

Ziel ist es, dass ich eine PDF öffnen kann, deren Pfad in Zelle B1 steht.
"Gesucht" werden soll nach einer PDF, die mit einen der 4 Ländernamen beginnt und einen der 4 Zusätze hat, z.B. DeutschlandA, ChinaD, USAC (...).

Ich habe den Code schon so umgestellt, wie in dem alten Thread von euch angemerkt, nur kommt nun die Meldung:
Range für das Objekt ... fehlgeschlagen.

For i = 2 To 4
Land = Range("2" & i)
heißt doch, das die "Komponente "Land"" aus dem Bereich Zeile 2 und Spalte "variabel" zusammen gestellt wird, wobei die Variable 2 bis 4 ist, also spalte 2 bis 4 bzw. B bis D.
Oder liege ich da komplett falsch?

Schon jetzt einen Dank an alle Helfer.

hier der komplette (fehlerhafte) Code:

#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
For i = 2 To 4 'Variable ist von (Spalte) 2 bis 4
For j = 2 To 4 'Variable ist von (Spalte) 2 bis 4
Pfad = Range("B1")
Land = Range("2" & i) 'Land wir ermittelt aus Zeile 2 und Spalte i (variabel)
Zusatz = Range("3" & j) 'Land wir ermittelt aus Zeile 3 und Spalte j (variabel)
xxx = "" & Pfad & "\" & Land & Zusatz & ".pdf"
If Dir(xxx) <> "" Then
ShellExecute 0, "open", xxx, "", "", SHOWMAXIMIZED
End If
Next j
Next i
End Sub
Michael

  

Betrifft: nicht Range("2" & i) ... sondern Cells(2,i) oT von: Matthias L
Geschrieben am: 18.11.2014 11:31:24




 

Beiträge aus den Excel-Beispielen zum Thema "Range für das Objekt ... fehlgeschlagen"