Thema Datum  Von Nutzer Rating
Antwort
31.01.2023 13:36:22 Gast29342
NotSolved
Blau VBA Code beenden wenn keine Datei ausgewählt wurde
31.01.2023 15:14:31 Gast2433
NotSolved

Ansicht des Beitrags:
Von:
Gast2433
Datum:
31.01.2023 15:14:31
Views:
603
Rating: Antwort:
  Ja
Thema:
VBA Code beenden wenn keine Datei ausgewählt wurde

Ich habe folgenden Code und möchte, dass er mit der Meldung "Keine Datei ausgewählt" beendet wird sobald man eine der zwei Dateien nicht auswählt. Wie mache ich das denn am besten? :/

Es beginnt immer damit, erst einmal die Doku zu studieren: https://learn.microsoft.com/de-de/office/vba/api/excel.application.getopenfilename
(der wichtigste Skill den man haben muss, wenn man programmiert, ist Dokument lesen und verstehen zu können)

Da kann man sehen, dass der Rückgabetyp Variant ist - also der Datentyp in VB(A), der alles sein kann.
Weiter steht dort drin, dass die Rückgabe abhängig von verschiedenen Faktoren ist.
Letztendlich ist es jedoch einer von drei Datentypen:

  1. Variant/Boolean
  2. Variant/String
  3. Variant/Array

Genau genommen sollte also die Variable, die den Rückgabewert entgegen nimmt, vom Datentyp Variant sein und nicht von z.B. String; wie bei dir.
Dann hast du nämlich die Möglichkeit genau auf den Datentyp zu testen (VarType-Funktion). Jedenfalls wäre das der Bilderbuch-Weg.


In der Praxis wirst du aber häufig der pragmatischen Herangehenweise begegnen (nur wenn kein Multiselect aktiviert):

    Dim tlupdatewbPath As String
    Dim beupdatewbPath As String

    'Get the path of the workbooks
    tlupdatewbPath = Application.GetOpenFilename("Excel Files (.xls),.xls", , "Select TL Workbook")
    beupdatewbPath = Application.GetOpenFilename("Excel Files (.xls),.xls", , "Select BEIF Workbook")

    If tlupdatewbPath = False Or beupdatewbPath = False Then
        Call MsgBox("Nope!", vbExclamation)
        Exit Sub
    End if

Das dies auch funktioniert, hat damit zu tun das Boolean hier in String konvertiert wird - sowohl auf der linken Seite als auch rechten Seite von dem  Vergleichsoperator (=). Damit passt es wieder... aber wie gesagt, das ist nur pragmatisch.

 

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
31.01.2023 13:36:22 Gast29342
NotSolved
Blau VBA Code beenden wenn keine Datei ausgewählt wurde
31.01.2023 15:14:31 Gast2433
NotSolved