Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1420to1424
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

UCase ?? Unter Excel 2010

UCase ? Unter Excel 2010
17.04.2015 12:30:15
Dirk
Hallo Forum,
ich habe ein seit Jahren funktionierendes Makro, das heißt:
Application.Dialogs(xlDialogOpen).Show
If UCase(xDatei) = "FALSCH" Then
MsgBox "Es wurde Abbrechen angeklickt."
Exit Sub
End If
Damit wird das Fenster Datei öffnen aktiviert und es soll eine Datei ausgewählt werden. Tut man dies aber nicht und drückt stattdessen auf Abbrechen, dann soll aus dem Programm ausgestiegen werden. Das funktioniert plötzlich nicht mehr! Kann mir einer erklären warum.
Danke aus Hannover
Dirk

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UCase ? Unter Excel 2010
17.04.2015 12:36:43
Nepumuk
Hallo,
der Dialog liefert den booleschen Wert True (es wurde eine Datei ausgewählt) oder False (es wurde abbrechen gedrückt) zurück. Diesen Wert mit eine String zu vergleichen ist nicht nur dirty sondern ... nein das schreibe ich jetzt nicht.
Also:
    If Application.Dialogs(xlDialogOpen).Show Then
        
        'mach was mit der Datei
        
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: UCase ? Unter Excel 2010
17.04.2015 14:08:36
Dirk
Hallo Nepumuk,
meine VBA Kenntnisse sind ja bescheiden :-)
Komplett hieß es bisher:
Sub CommandButton1_Click()
Dim xDatei As String
Application.Dialogs(xlDialogOpen).Show
If UCase(xDatei) = "FALSCH" Then
MsgBox "Es wurde Abbrechen angeklickt."
Exit Sub
End If
Call Daten_einlesen
End Sub
und das funktionierte. Wenn man jetzt aber Abbrechen drückt, dann wird das Makro "Daten einlesen" dennoch aufgerufen. Das möchte ich aber nicht. Deine Änderung eine weitere If-Schleife einzubauen hilft mir für das Abbrechenproblem irgendwie auch nicht..... Könntest du es einem VBA-Minderentwickelten etwas verständlicher machen? :-)
Danke
Dirk

Anzeige
Wo steht was von einer weiteren Schleife? (owT)
17.04.2015 14:17:15
einer

AW: Wo steht was von einer weiteren Schleife? (owT)
17.04.2015 14:21:40
einer
ich habe es jetzt ja so gemacht - so habe ich Nepumuk verstanden:
If Application.Dialogs(xlDialogOpen).Show Then
'öffnet den "Dateien öffnen" Dialog
If UCase(xDatei) = "FALSCH" Then
MsgBox "Es wurde Abbrechen angeklickt."
Exit Sub
End If
End If
Call Daten_einlesen
End Sub
Also zwei IF-Schleifen. war aber so wohl nicht gemeint.
Gruß
Dirk

Nein, so war's sicher nicht gemeint
17.04.2015 14:27:36
EtoPHG
Dirk,
Wie kannst du das in die Antwort von Nepumuk 'implantieren'?
    If Application.Dialogs(xlDialogOpen).Show Then
        
        Call Daten_einlesen
        
    End If
End Sub

Gruess Hansueli

Anzeige
AW: Nein, so war's sicher nicht gemeint
17.04.2015 14:45:46
Dirk
So verstehe ich es aber nicht! Es geht darum in eine Masterdatei viele andere Dateien einzulesen. Dazu drückt man in der Masterdatei auf einen Button und wählt eine Datei aus, die geöffnet wird. Dann startet das eigentliche Makro und liest die Daten in die Masterdatei ein. Wenn nun aber jemand plötzlich keine Datei auswählt sondern abbrechen drückt, dann soll das Makro nicht durchlaufen. Somit geht es ganz so einfach ja auch nicht. Und nochmal - so wie es bisher war, funktionierte es seit ca. 1,5 Jahren. Wobei das mit dem Abbrechen nicht oft vorkommt und die Auswirkungen aus anderen Gründen aber ziemlich blöde sind.

Anzeige
So so es geht nicht...
17.04.2015 14:50:40
EtoPHG
Dirk,
Hast du es den ausprobiert?
Wenn du es nicht verstehst, warum wendest du überhaupt VBA-Code an?
Wenn du es nicht testest, warum kannst du dann behaupten das es nicht geht?
Warum es 1.5 Jahre ging und jetzt nicht mehr, liegt mit grosser Wahrscheinlichkeit darin, dass du entweder dein Windows oder dein Excel auf eine andere Version gebracht hast.
Gruess Hansueli

AW: So so es geht nicht...
17.04.2015 15:26:47
Dirk
Hallo Hansuelli,
ich kann ja nicht mehr als "VBA-Kenntnisse bescheiden" angeben. Und auch mit bescheidenen Kenntnissen kann es Sinn machen VBA-Codes zu entwerfen - so zumindest meine Erfahrung. Und ich habe auf Nepumuks Hinweis etwas ausprobiert - anscheinend aber etwas falsches. Und so wie ich es dann versucht habe funktioniert es nicht. Nicht als Behauptung sondern als Tatsachenfeststellung.
Dennoch bin ich euch dankbar, dass ihr mir Hinweise gebt, die ich leider nicht mit Leben füllen kann, weil ich den entscheidenden Punkt wohl immer noch nicht erkannt habe. Jetzt mache ich erstmal Feierabend und schaue mir das später ganz in Ruhe nochmal an. Vielleicht erkenne ich dann ja den Tipp, den ihr mir zur Lösung meines Problemes geben wolltet bzw. gegeben habt. Wenn nicht, dann reichen meine Kenntnisse eben nicht. Vielen Dank Gruß Dirk

Anzeige
AW: So so es geht nicht...
17.04.2015 15:56:31
Nepumuk
Hallo,
aus deinem Code-Fragment konnte ich nichts besseres ableiten.
Gruß
Nepumuk

Stimme Hansueli zu, ...
17.04.2015 15:13:45
Luc:-?
…Dirk;
was du zeigst ist ein unmöglicher Code, der bisher nur dank VBA-(Compiler-)Toleranz fktt hat. Wenn du dem User (überflüssigerweise!) auch noch mitteilen willst, dass er abgebrochen hat (was er ja eigentlich wissen sollte!), musst du halt noch die MsgBox einfügen:
If Application.Dialogs(xlDialogOpen).Show Then
Call Daten_einlesen
Else: MsgBox "Es wurde Abbrechen angeklickt."
End If
Die String-Variable xDatei nutzt doch nur etwas, wenn sie zB einen DateiNamen aufnimmt und dann an die aufgerufene Prozedur übergibt!
Application.Dialogs(xlDialogOpen).Show ergibt True, wenn eine Datei ausgewählt wurde, und False, wenn nicht. Und bekanntlich geht's nur weiter, wenn eine Aktion erfolgt ist, also Datei ausgewählt oder eben abgebrochen wurde.
Gruß, Luc :-?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige