Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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

Fehler 400 Dateizugriff

Fehler 400 Dateizugriff
24.09.2013 08:09:26
Alex
Hi,
habe ein recht merkwürdiges Problem, zu dem ich keine Lösung finden kann. Zu einem Dateiaufruf habe ich eine Fehlerbehandlung, falls die Datei nicht gefunden wird. Das funktioniert ganz prima, solange der VB Editor (Alt+F11) geöffnet ist. Ist er aber geschlossen, meldet er mir beim nächsten Macroaufruf den Fehler 400 und bricht ab. Ungünstig, da der Benutzer ja niemals den Editor offen hat.
Sub SW22_BeiKlick()
oeffnen ("SW22")
End Sub
'Öffnen der Datei
Sub oeffnen(gstrBand)
gstrLink = ThisWorkbook.Path & "\" & gstrFormat & "\" & gstrBand & " Astplan." & gstrFormat
On Error GoTo Fehler
FollowHyperlink (gstrLink)
Exit Sub
Fehler:
MsgBox "Ziel nicht erreichar, Datei " & gstrBand & "." & gstrFormat & " nicht vorhanden."
Resume Next
End Sub

Was kann da sein?
Lieben Dank schonmal,
Alex

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler 400 Dateizugriff
24.09.2013 09:06:31
selli
hallo alex,
erste frage, die mir einfällt: wie und wo übergibst du der variablen gestrFormat einen wert?
gruß
selli

AW: Fehler 400 Dateizugriff
27.09.2013 13:57:41
Alex
Das ist so:
' Auswahl des Formates
Sub PDF_BeiKlick()
If gstrFormat = "VSD" Then auswahl "PDF", "VSD"
End Sub

Sub Visio_BeiKlick()
If gstrFormat = "PDF" Then auswahl "VSD", "PDF"
End Sub

Sub auswahl(a, b)
Worksheets(1).Shapes(a).IncrementLeft 2
Worksheets(1).Shapes(a).IncrementTop 2
Worksheets(1).Shapes(b).IncrementLeft -2
Worksheets(1).Shapes(b).IncrementTop -2
gstrFormat = a
End Sub

Anzeige
AW: Fehler 400 Dateizugriff
29.09.2013 12:28:09
fcs
Hallo Alex,
warum es bei dir funktioniert wenn du das Makro direkt im VBA-Editor ausführts weiss ich nicht.
Bei mir -unter Excel 2010- gibt es direkt Fehler.
Folgende Sachen sind mir aufgefallen.
1. Wahl des Dateiformats PDF oder VSD
Das Dateiformat wird nur umgeschaltet, wenn die Variable gstrFormat bereits einen Wert hat.
Beim öffnen der Datei hat die Datei aber den Wert "".
Du musst also zusätzlich auch prüfen, ob die Variable = "" ist.
2. Prüfung ob Datei existiert
Statt die Anweisung für den Hyperlink in den Fehler laufen zu lassen ist es besser mit der Dir-Methode zu prüfen, ob die Datei existiert.
3. FollowHyperlink
Hier fehlt ein Ausdruck, auf den sich die Methode bezieht.
FollowHyperlink gibt es in 2 Varianten:
a) als Methode des Workbooks (Arbeitsmappe)
b) als Ereignis in einem Worksheet (Tabelle)
Wenn der Ausdruck fehlt, dann versucht Excel an Hand des aktuellen Zustands etwas passendes zu finden.
Das ist wahrscheinlich der Grund, warum das Makro im Editor funktioniert, direkt von der Programmoberfläche aber nicht.
Du benötigst hier die Methode bezogen auf das Workbook.
Insgesamt sollte man die möglichen Fehler vorab prüfen und entsprechende Aktionen einleiten, statt eine Anweisung einfach in einen Fehler laufen zu lassen.
Gruß
Franz
Hier der angepasste Code, wie er etwa aussehen sollte.
Die Deklaration der globalen Variablen kann natürlich auch in einem anderen allgemeinen Modul erfolgen.
Option Explicit 'am Beginn des Modul - empfehlenswert zur Vermeidung von Fehlern
Public gstrFormat As String, gstrLink As String
Sub PDF_BeiKlick()
If gstrFormat = "VSD" Or gstrFormat = "" Then auswahl "PDF", "VSD"
End Sub
Sub Visio_BeiKlick()
If gstrFormat = "PDF" Or gstrFormat = "" Then auswahl "VSD", "PDF"
End Sub
Sub auswahl(a, b)
Worksheets(1).Shapes(a).IncrementLeft 2
Worksheets(1).Shapes(a).IncrementTop 2
Worksheets(1).Shapes(b).IncrementLeft -2
Worksheets(1).Shapes(b).IncrementTop -2
gstrFormat = a
End Sub
Sub SW22_BeiKlick()
oeffnen ("SW22")
End Sub
'Öffnen der Datei
Sub oeffnen(gstrBand)
Dim strDatei As String
On Error GoTo Fehler
If gstrFormat = "" Then
MsgBox "Bitte erst Format PDF oder VSD wählen"
Else
strDatei = gstrBand & " Astplan." & gstrFormat
gstrLink = ThisWorkbook.Path & "\" & gstrFormat & "\" & strDatei
If Dir(gstrLink) = "" Then
MsgBox "Datei """ & strDatei & """ ist nicht vorhanden!", _
vbInformation + vbOKOnly, "Link öffnen"
Else
ThisWorkbook.FollowHyperlink Address:=gstrLink, NewWindow:=True
End If
End If
Fehler:
With Err
Select Case .Number
Case 0 'Alles OK
Case -2147221014
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
& "Datei: " & strDatei, _
vbInformation vbOKOnly, "Link öffnen"
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige