Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Workbooks.Open - On error funktioniert nicht

Workbooks.Open - On error funktioniert nicht
JBecker
Hallo Forum,
Ab der Zelle A2 stehen in der Spalte A Pfad und Dateiname untereinander
(z.B. C:\test1.xls / C:\test2.xls / ... ).
Wenn die Dateien existieren arbeitet das Makro problemlos,
Wenn allerdings test1 und test2 nicht existieren wird in die Zelle B2 der Hinweis gemäß Zeile 11 geschrieben (d.h. "Fehler: Datei existiert nicht"), bei test 2 gibt es aber einen Fehlerhinweis von Excel: Laufzeitfehler 1004, 'C:\test2.xls' wurde nicht gefunden.... und das Makro bleibt somit stehen.
Wo liegt mein Fehler?
Besten Dank im voraus,
Jörg

Sub Import()
Dim Start As Variant
Dim Importdatei As Variant
Dim Summarydatei As Variant
Summarydatei = ActiveWorkbook.Name
Start = Range("A1").Address
Zeile1:
Start = Range(Start).Offset(1, 0).Address
If Range(Start).Value = "" Then Exit Sub
Importdatei = Range(Start).Value
Application.DisplayAlerts = False
On Error GoTo Zeile11
Workbooks.Open Filename:=Importdatei
On Error GoTo 0
Windows(Summarydatei).Activate
GoTo Zeile1
Zeile11:
Windows(Summarydatei).Activate
Range(Start).Offset(0, 1).Value = "Fehler: Datei existiert nicht"
On Error GoTo 0
GoTo Zeile1
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Workbooks.Open - On error funktioniert nicht
07.10.2011 08:50:50
Heiko
Moin Jörg,
da ich deinen Code nicht wirklich nachvollziehen konnte, zuviele Goto´s, habe ich dir mal eine Version geschrieben so wie ich es machen würde.

Sub ImportNeu()
Dim strImportdatei As String
Dim lngI As Long
lngI = 2
' Schleife von A2 bis in Spalte A nichts mehr drin steht.
Do While ThisWorkbook.Worksheets("Tabelle1").Cells(lngI, 1)  ""
strImportdatei = ThisWorkbook.Worksheets("Tabelle1").Cells(lngI, 1)
' Prüfen ob Datei vorhanden
If Dir(strImportdatei)  "" Then
Application.DisplayAlerts = False
' Datei öffnen
Workbooks.Open strImportdatei
' Nun die Daten auslesen wenn gewünscht.
ThisWorkbook.Worksheets("Tabelle1").Cells(lngI, 2) = ActiveWorkbook.Worksheets(1).Cells( _
1, 1)
' Datei wieder schließen.
ActiveWorkbook.Close
Application.DisplayAlerts = True
Else
' Datei nicht vorhanden, dann halt
ThisWorkbook.Worksheets("Tabelle1").Cells(lngI, 2) = "Fehler: Datei existiert nicht"
End If
lngI = lngI + 1
Loop
End Sub

Gruß Heiko
Anzeige
AW: Workbooks.Open - On error funktioniert nicht
07.10.2011 09:15:50
JBecker
Hallo Heiko,
besten Dank, läuft ohne probleme!
Ciao Jörg
AW: Workbooks.Open - On error funktioniert nicht
07.10.2011 12:03:47
Henrik
Hallo,
das ist interessant - ich habe es mal vereinfacht:

Sub test()
Dim n As Integer
n = 0
Zeile1:
On Error GoTo Fehler
n = 3 / n
n = 0
GoTo Zeile1
Exit Sub
Fehler:
MsgBox "Fehler: Geht nicht"
n = 1
GoTo Zeile1
End Sub
Man kann also sagen, dass solch ein Konstrukt Fehler nicht zuverlässig abfängt.
Das liegt eventuell daran, dass es an der Wiederholung des gleichen Fehlers liegt.
Folgendes geht übrigens auch nicht:

Sub test2()
Dim n As Integer
Dim m As Integer
n = 0
m = 0
Zeile1:
On Error GoTo FehlerN
n = 3 / n
M:
On Error GoTo FehlerM
m = 3 / m
Exit Sub
FehlerN:
MsgBox "Fehler: Geht nicht"
GoTo M
Exit Sub
FehlerM:
MsgBox "Fehler: Geht nicht"
End Sub
Was ja die Vermutung bestätigt...
Gruß! Henrik
Anzeige
AW: Workbooks.Open - On error funktioniert nicht
07.10.2011 12:27:57
Heiko
Hallo Hendrik,
mit Resume funktioiert es. Aber eine saubere Programmierung ist das so auch nicht, sind mir immer noch zuviele Goto´s drin ;-o)

Sub Import()
Dim Start As Variant
Dim Importdatei As Variant
Dim Summarydatei As Variant
Summarydatei = ActiveWorkbook.Name
Start = Range("A1").Address
Zeile1:
Start = Range(Start).Offset(1, 0).Address
If Range(Start).Value = "" Then Exit Sub
Importdatei = Range(Start).Value
Application.DisplayAlerts = False
On Error GoTo Zeile11
Workbooks.Open Filename:=Importdatei
Windows(Summarydatei).Activate
GoTo Zeile1
Zeile11:
Windows(Summarydatei).Activate
Range(Start).Offset(0, 1).Value = "Fehler: Datei existiert nicht"
Resume Zeile1
End Sub

Gruß Heiko
Anzeige
AW: Workbooks.Open - On error funktioniert nicht
07.10.2011 13:36:15
Henrik
Ah, okay danke Heiko!
Wieder was gelernt...
Gruß und schönes Wochenende!
Henrik

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige