Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: workbook open mit set fehler abfangen

workbook open mit set fehler abfangen
chris
Hallo ich habe unten stehenden code.
Mit dem nmöchte ich gerne per auswahl eine Datei öffnen.
Das klappt auch gut.
Aber kann ich auch ohen on error den fehler abfangen wenn beim Auswahlfenster der datei auf abbruch gedrückt wird und keine Datei gewählt wurde ?
Vielen dank im vorraus !! Schönen tag noch !
Option Explicit
Sub start()
Dim myworkbook As Workbook
Set myworkbook = Workbooks.Open((Application.GetOpenFilename))
If myworkbook Is Nothing Then
Else
End If
End Sub

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: workbook open mit set fehler abfangen
02.10.2009 09:20:16
JogyB
Hi.
On Error Resume Next
Das vor die Set Zeile.
Danach die Fehlerbehandlung mit "On Error Goto 0" aber wieder einschalten.
Gruss, Jogy
Fehler vorher vermeiden
02.10.2009 09:36:44
Erich
Hi Chris,
so ein Fehler muss gar nicht erst entstehen. Das ist (zumindest fast) immer besser als
eine Fehlerbehandlung nachher.
Probier mal

Option Explicit
Sub start()
Dim varFile As Variant, myworkbook As Workbook
varFile = Application.GetOpenFilename
If varFile = False Then
MsgBox "Keine Mappe gewählt"
Else
Set myworkbook = Workbooks.Open(varFile)
End If
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Fehler vorher vermeiden
02.10.2009 10:00:46
JogyB
Hi Erich,
das kann trotzdem einen Fehler geben, z.B. wenn eine andere Mappe mit gleichem Namen schon geöffnet ist, von jemand anders geöffnet ist, passwortgeschützt ist etc. (in den letzten beiden Fällen muss für den Fehler natürlich die dann folgende Abfrage mit Abbrechen beantwortet werden).
Gruß, Jogy
Anzeige
Fehler vermeiden, soeit es geht
02.10.2009 10:24:26
Erich
Hi Jogy,
stimmt, einen Laufzeitfehler kann es trotzdem geben.
Dem ersten Grund - wenn eine andere Mappe mit gleichem Namen schon geöffnet ist -
könnte man noch ganz gut vorbeugen, indem man das vor dem Öffnen prüft.
Die Blockierung durch einen anderen Benutzer kann man z. B. mit
Open Pfad & FileName For Random Access Read Lock Read Write As #1
erkennen - das aber mit vorherigem "On Error ..."
Du siehst: Ich rudere schon zurück.
Danke für deinen Hinweis und Grüße vom Erich aus Kamp-Lintfort
Anzeige
AW: Fehler vermeiden, soeit es geht
02.10.2009 10:38:52
JogyB
Hi Erich,
das ist auch eine ziemlich üble Geschichte... ich habe für mich da eine relativ aufwendige Öffnen Prozedur geschrieben, die das meiste erschlägt (auch solche Sache wie Schreibschutz, Passwortschutz, speichern bei freigegebenen Dateien, damit die aktuell sind etc.). Die verwende ich nun meistens, auch wenn sie oftmals völlig überdimensioniert ist.
Nur wenn man so etwas nicht hat, muss man sich überlegen, wie viel Aufwand notwendig ist. Wenn es nur darum geht, ob die Datei nun offen ist oder nicht, dann ist ein kontrollierter Fehler eine schnelle und einfache Methode. Empfinden einige als unschön, ich mache das aber recht gern, weil ich damit teilweise mit drei Zeilen Code auskomme, wo sonst 50 nötig wären.
Gruss, Jogy
Anzeige
AW: Fehler vermeiden, soeit es geht
02.10.2009 12:25:31
chris
Vielen dank euch beiden für die Hilfe !!
Und Tipps.
Haben mir geholfen !
gruß Chris
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Fehler beim Öffnen von Workbooks in Excel VBA abfangen


Schritt-für-Schritt-Anleitung

Um Fehler beim Öffnen von Workbooks in Excel VBA abzufangen, kannst Du folgende Schritte befolgen:

  1. Vorbereitung: Öffne den Visual Basic for Applications (VBA) Editor in Excel.

  2. Neues Modul erstellen: Füge ein neues Modul ein, um Deinen Code zu organisieren.

  3. Code einfügen: Verwende den folgenden Code, um ein Workbook zu öffnen und gleichzeitig Fehler abzufangen:

    Option Explicit
    
    Sub start()
       Dim varFile As Variant
       Dim myworkbook As Workbook
    
       varFile = Application.GetOpenFilename
       If varFile = False Then
           MsgBox "Keine Mappe gewählt"
           Exit Sub
       End If
    
       ' Fehlerbehandlung aktivieren
       On Error Resume Next
       Set myworkbook = Workbooks.Open(varFile)
       If Err.Number <> 0 Then
           MsgBox "Fehler beim Öffnen der Datei: " & Err.Description
           Err.Clear
       End If
       On Error GoTo 0  ' Fehlerbehandlung zurücksetzen
    End Sub
  4. Ausführen: Führe das Makro aus und teste die Datei-Auswahl.


Häufige Fehler und Lösungen

  • Fehler beim Öffnen aufgrund bereits geöffneter Datei: Wenn eine Datei bereits geöffnet ist, kann Excel einen Fehler ausgeben. Verwende die On Error Resume Next-Anweisung, um diesen Fehler abzufangen.
  • Abbruch im Datei-Dialog: Wenn der Benutzer im Datei-Dialog auf „Abbrechen“ klickt, gibt die Funktion Application.GetOpenFilename den Wert False zurück. Dies sollte überprüft werden, um weitere Fehler zu vermeiden.

Alternative Methoden

Eine alternative Methode, um Fehler beim Öffnen von Workbooks in Excel VBA abzufangen, ist die Verwendung von On Error GoTo:

Option Explicit

Sub start()
    Dim varFile As Variant
    Dim myworkbook As Workbook

    varFile = Application.GetOpenFilename
    If varFile = False Then
        MsgBox "Keine Mappe gewählt"
        Exit Sub
    End If

    On Error GoTo ErrorHandler
    Set myworkbook = Workbooks.Open(varFile)
    Exit Sub

ErrorHandler:
    MsgBox "Fehler beim Öffnen der Datei: " & Err.Description
    Resume Next
End Sub

Diese Methode erlaubt es, spezifische Fehlerbehandlungsroutinen zu definieren.


Praktische Beispiele

Hier sind einige praktische Anwendungsfälle für das Öffnen von Workbooks:

  1. Öffnen einer Arbeitsmappe mit Fehlerbehandlung: Du kannst eine Arbeitsmappe öffnen und gleichzeitig sicherstellen, dass alle Fehler berücksichtigt werden.

    Sub OpenWorkbookExample()
       On Error Resume Next
       Set myworkbook = Workbooks.Open("C:\Path\To\Your\File.xlsx")
       If Err.Number <> 0 Then
           MsgBox "Die Datei konnte nicht geöffnet werden: " & Err.Description
           Err.Clear
       End If
       On Error GoTo 0
    End Sub
  2. Erstellen einer benutzerdefinierten Fehlerbehandlung: Du kannst Fehler spezifisch behandeln, basierend auf dem Fehlercode.


Tipps für Profis

  • Verwende Option Explicit: Dies hilft, Fehler im Code zu finden, indem es sicherstellt, dass alle Variablen deklariert werden.
  • Fehlerprotokollierung: Überlege, eine Fehlerprotokollierung zu implementieren, um aufgetretene Fehler in einer separaten Datei zu speichern.
  • Testen: Teste Deinen Code gründlich, um sicherzustellen, dass alle möglichen Fehlerfälle abgedeckt sind.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass eine Datei nicht mehrmals geöffnet wird? Du kannst eine Abfrage einbauen, die prüft, ob die Datei bereits geöffnet ist, bevor Du versuchst, sie erneut zu öffnen.

2. Was passiert, wenn ich einen Fehler beim Öffnen einer passwortgeschützten Datei habe? Wenn die Datei passwortgeschützt ist, wird ein Fehler generiert. Du kannst diesen Fehler mit einer entsprechenden Fehlerbehandlungsroutine abfangen und darauf reagieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige