Office: Datei öffnen dialog -> bei abbrechen Datei schließen!

Helfe beim Thema Datei öffnen dialog -> bei abbrechen Datei schließen! in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen! Ich habe mal wieder ein VBA-Problem, bei dem ich nicht weiterkomme. Ich benutze einen Datei-Öffnen-Dialog um eine CSV-Datei (zwecks... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von User, 28. Mai 2006.

  1. Datei öffnen dialog -> bei abbrechen Datei schließen!


    Hallo zusammen!

    Ich habe mal wieder ein VBA-Problem, bei dem ich nicht weiterkomme. Ich benutze einen Datei-Öffnen-Dialog um eine CSV-Datei (zwecks weiterer Bearbeitung durch ein Makro) einzulesen. Wenn der Benutzer auf Abbrechen klickt würde es natürlich unweigerlich zu einer Fehlermeldung kommen, da das Makro versuchen würde ohne die nötigen Daten durchzulaufen.

    Daher dachte ich mir, daß ich eine Abfrage einfüge - so, daß wenn der Abbrechen Button gedrückt wird, eine MessageBox kommt und die Datei darauf hin einfach geschlossen wird. Das klappt aber irgendwie nicht, denn trotzdem durchläuft er das Makro weiter und gibt dann irgendwann einen Fehler (Typen unverträglich). Ich dachte, daß wenn ich sage, daß er die Datei schließen soll, das Makro an der Stelle auch abgebrochen wird!?

    So sieht das ganze zur Zeit aus:

    Code:
    Wie gesagt, nach den ... geht's dann erst richtig los, also der Import der im Dialog ausgewählten Datei.

    Weiß jemand, warum das ganze nicht funzt? Ich wollte schon ein GoTo setzen, welches eine Marke am Ende des Moduls aufruft - diese Marke befindet sich aber in einer anderen Sub. Ist es möglich aus einer Sub die Textmarke in einer anderen aufzurufen?

    Fragen über Fragen... *grins

    Grüße

    Mirko

    :)
     
  2. Hallo, Mirko,

    ist Importdaten als Variable vom Typ Variant deklariert?

    Gruß
    LS
     
    Lumpensammler, 30. Mai 2006
    #2
  3. Hallo Lumpensammler!

    Nein, ehrlich gesagt war Importdaten bisher als String definiert. Aber auch als Variant macht es keinen Unterschied, in Bezug darauf, dass er eben nicht nur die Datei schließt, sondern trotzdem das rechtliche Makro noch bis zum Ende durchläuft.

    Daher nochmal meine Frage, ist es möglich einen GoTo Verweis auf eine Textmarke in einer anderen Sub, also einem anderen Makro, einzubauen? Oder gibt es einen Befehl, der sagt "Stoppe durchlauf des Makros"??
     
  4. Datei öffnen dialog -> bei abbrechen Datei schließen!

    Hallo, Mirko,

    es macht einen Unterschied aus, ob ein String (der Name der Datei mitsamt Pfad) oder ein boolescher Wert in der Variable gespeichert wird, weil Du auf einen booleschen Wert vergleichst. *wink.gif*

    Code:
    Da bedarf es keines weiteren Befehls wie End.

    Gruß
    LS
     
    Lumpensammler, 31. Mai 2006
    #4
  5. Ok, da hast Du natürlich Recht. Die MsgBox "Aktiv" wird wenn man abbrechen drückt nicht mehr angezeigt. Allerdings wird komischerweise immer sofort die komplette Anwendung geschlossen - nicht nur das aktive Workbook. Insbesondere wenn man noch andere Dateien in Excel geöffnet hat sehr ärgerlich.

    Woran könnte das liegen? Habe am Ende das Moduls (aber einer anderen Sub) ein Application.Quit stehen. Aber das sollte er doch eigentlich garnicht mehr durchlaufen!?
     
  6. Ok, wenn ich das Application.Quit im anderen Makro auch durch ein ActiveWorkbook.Close ersetze, dann funzt alles soweit.

    Jetzt gibt es aber ein anderes Problem. Und zwar, habe ich ein Makro im Modul stehen, welches am Schluß den Benutzer fragt, ob er die CSV-Datei speichern soll oder nicht. Ja und Nein sind mit 2 GoTo-Abfragen verbunden, so dass bei Ja gespeichert wird und bei Nein wird dieser Bereich einfach übersprungen.

    Jetzt, wo ich aber statt Application.Quit am Ende ActiveWorkbook.Close stehen habe, erscheint meien eingebaute Speicherabfrage plötzlich 2mal hintereinander!! Warum das denn? So sieht das Makro aus:

    Code:
    Also wenn ich bei der Frage "Möchten Sie Ihre Änderungen..." Nein drücke, erscheint die selbe Frage nochmal, dann wieder auf nein, Datei wird geschlossen.

    Bei Ja, wird "Die Datei XY wurde gespeichert!" angezeigt, nochmal der Dialog "Möchten Sie..." bei nochmaligem Ja wieder "Die Datei XY..." und dann wird die Datei erst geschlossen.

    Warum zur Hölle?? *grins
     
  7. Hallo, Mirko,

    ich habe mir den Code angesehen, aber da Du nicht alle relevanten Angaben vorgibst, werde ich keine weitere Zeit für die Suche einer möglichen Fehlerquelle opfern. Fehlende Operanden:

    Code:
    Fehlende Funktion:

    Code:
    Gruß
    LS
     
    Lumpensammler, 31. Mai 2006
    #7
  8. Datei öffnen dialog -> bei abbrechen Datei schließen!

    Sorry, hab ich in der Tat vergessen. Folgende Variablen & Konstanten sind im Modul ganz oben (also global für alle Subs) definiert:

    Code:
    Und hier noch die fehlende Funktion:

    Code:
     
  9. Hi,

    was mir mal auf die Schnelle aufgefallen ist:

    Wenn Du sowas wier Sprungmarken definierst läuft der code anch der Sprungmarke einfach wieter. Also Du musst am Ende dzw vor der nächsten Sprungmarke ein "Exit Sub" setzen. Sonst wird der nächste Codeteil auch verarbeitet. Das gilt dann auch für den Teil nach der If-Abfrage

    Also z.B. vor dem
    Code:
    kommt dann die Zeile:

    Code:
    ...und vor "Endemitspeichern:" natürlich entsprechend....

    Hoffentlich war das verständlich....
     
    Hotte, 31. Mai 2006
    #9
  10. Moin, elpraktikante,

    die Sprungmarken sind meiner Meinung nach überflüssig und können entweder in die If-Bedingung eingebaut werden, wenn nur eine jeweilig gelten soll, oder die If-Abfrage wird auf vbYes für die erste Sprungmarke umgestellt und die zweite Sprungmarke kann entfallen, der Code steht direkt hinter der If-Bedingung...
     
  11. Hi jinx,

    ...das ist natürlich die beste Variante - zumal der alte "Spaghetti-Code" eh nicht überzeugend ist... *wink.gif*
     
    Hotte, 31. Mai 2006
    #11
  12. Hallo Hotte & jinx!

    Danke für Eure Tips - stimmt, das war wirklich überflüssig. Der Code sieht jetzt so aus:

    Code:
    Das Problem ist aber leider immer noch da - völlig unverändert *bawling

    EDIT: Hab gerade auch nochmal die Geschichte mit dem Exit Sub probiert, ebenfalls keine Veränderung. Das KANN doch garnicht sein *smashing
     
  13. Datei öffnen dialog -> bei abbrechen Datei schließen!

    OK, Fehler gefunden. Und jetzt bitte nicht schlagen, weil ich das hier unterschlagen hab:

    Code:
    So ruft er Export natürlich zweimal auf. Einmal wenn ich die Tabelle manuell schließe, und dann durch das ActiveWorkbook.Close noch einmal. Also kann ich das ActiveWorkbook.Close am Ende ja einfach rausnehmen.

    Da gibts aber noch eine Sache. Und zwar möchte ich ja die Datei schließen lassen, wenn der Benutzer am Anfang beim File-Dialog Abbrechen drückt (siehe die ersten Beiträge in diesem Thread). Nun wird beim Befehl ActiveWorkbook.Close natürlich auch wieder das Sub Export aufgerufen - was aber natürlich in dem Fall garnicht passieren soll (gibt ja nix zu exportieren).

    Kann ich das das "Workbook_BeforeClose" in dem Fall auch umgehen? Denn generell soll es ja bestehen bleiben, damit das Makro nachdem der Benutzer mit bearbeiten fertig ist und die Datei schließen will automatisch das Export-Makro aufgerufen wird. Wenn er aber ganz am Anfang nur auf abbrechen klickt eben nicht.
     
  14. OK, Problem schon gelöst. Hab einfach den Inhalt der Exportfunktion hierin eingeklammert:

    Code:
    So wird das ganze nicht ausgeführt, wenn kein Dateiname eingelesen wurde. Eine klitzekleine Sache gibt's jetzt aber noch. Wenn ich das ActiveWorkbook.Close am Ende wegnehme, steht ja nur noch folgendes da:

    Code:
    Hilft aber nix, Excel fragt trotzdem, ob die Datei gespeichert werden soll. Soll aber nicht (denn die *.xls Datei soll ja eben gerade nicht gespeichert werden, da sie eigentlich nur das Makro enthält und den Mantel für die CSV darstellt). Irgend 'ne Idee wie ich die Meldung noch wegbekomme?
     
  15. Sorry für meinen Monolog hier *grins

    Hab Excel jetzt einfach mal ein bissel verarscht. Das ActiveWorkbook.Close am Ende hab ich wieder eingefügt (verhindert interessanterweise dann auch wieder die Excel-Speicherabfrage). Des weiteren hab ich vor das "End If" der "If Not Dateiname = Empty Then"-Anweisung einfach das gesetzt:

    Dateiname = Empty

    So wird das Exportmakro jetzt zwar wieder doppelt geladen, aber es ist sichergestellt, daß der Code nur einmal ausgeführt wird.

    Also, das wär's - danke noch mal an alle für Eure Hilfe. Habe fertig.

    Grüße

    Mirko
     
Thema:

Datei öffnen dialog -> bei abbrechen Datei schließen!

Die Seite wird geladen...
  1. Datei öffnen dialog -> bei abbrechen Datei schließen! - Similar Threads - Datei öffnen dialog

  2. Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA

    in Microsoft Excel Hilfe
    Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA: Hallo Leute, Hoffentlich könnt ihr mir hier helfen, ich krieg den Syntax einfach nicht hin (wahrscheinlich ist es auch totaler käse den ich programmiert habe). Also im Grunde soll eine Datei...
  3. Dateien bei Öffnen aus der Cloud schreibgeschützt

    in Microsoft Excel Hilfe
    Dateien bei Öffnen aus der Cloud schreibgeschützt: Hallo zusammen, eine weiteres Problem... Ich habe Office 365 auf dem MAC und nutze auch One Drive. Nun habe ich folgendes Problem: Ich Speicher eine Excel Datei in der Cloud (automatisches...
  4. Zugriff auf andere Excel Datei ohne aktives Öffnen

    in Microsoft Excel Hilfe
    Zugriff auf andere Excel Datei ohne aktives Öffnen: Liebe Community, ich habe mir eine Formel geschrieben um Werte aus einer anderen Excel Datei in meine Haupt Excel Datei einzufügen. Leider muss die Datei aus der ich die Daten haben will immer...
  5. Öffnen einer pptx Datei endet mit "unbekannter Fehler"

    in Microsoft Teams Hilfe
    Öffnen einer pptx Datei endet mit "unbekannter Fehler": Beim öffnen einer Datei in MS Teams erscheint ein leeres Fenster mit dem Dateinamen als Überschrift und im Fenster erscheint die Meldung "unbekannter Fehler". Die Dateien legen in der Standard...
  6. "Datei öffnen" Dialog aufrufen (User-Form)

    in Microsoft Excel Hilfe
    "Datei öffnen" Dialog aufrufen (User-Form): Hallo Zusammen, ich möchte gerne über ein User_Form unter anderem den "Datrei Öffnen" Dialog starten. Mein bisheriger Code hierzu: Code: Private Sub Cmd_Kalkulation_laden_Click()...
  7. Fehler bei Abbruch im Datei-Öffnen Dialog beim Abbrechen

    in Microsoft Excel Hilfe
    Fehler bei Abbruch im Datei-Öffnen Dialog beim Abbrechen: Hallo excel- Spezialisten, ich habe folgenden Datei-Öffnen Dialog : With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = False .InitialFileName =...
  8. Datei Öffnen Dialog beschleunigen

    in Microsoft Word Hilfe
    Datei Öffnen Dialog beschleunigen: Hallo, ich habe ein Problem das mir langsam aber sicher doch gewaltige Bauchschmerzen bereitet. Gibt es eine Möglichkeit per Indizierung oder Ähnlichem die Dateiauflistung im Dialog "Datei...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden