Abbrechen der Dateiauswahl

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Abbrechen der Dateiauswahl
von: Danni
Geschrieben am: 17.11.2003 15:54:22

Hallo zusammen,

mein Problem dreht sich um dieses Auswahlfenster, mit dem ich dem Nutzer die Auswahl einer beliebigen Datei ermöglichen will.
Ich habe diese Zeile in einem Makro.

Application.Dialogs(xlDialogOpen).Show

Problem hierbei:
Wenn der User das Fenster angezeigt bekommt und auf "Abbrechen" klickt, dann flieg ich mit folgender Fehlermeldung aus dem Makro: "Laufzeitfehler 9, Index außerhalb des gültigen Bereichs"
Lieber wär mir natürlich eine Msgbox "Auswahl wurde abgebrochen" o.ä.

Kann mir jemand sagen, wie ich das abfange?!


Danke für die Hilfe,
Danni

Bild


Betrifft: AW: Abbrechen der Dateiauswahl
von: Nepumuk
Geschrieben am: 17.11.2003 17:14:51

Hallo Danni,
der Fehler kommt aber nicht von dem Dialog, sondern vom Code der dem Dialog folgt. Wenn du uns den mal sehen lässt, dann können wir dir sicher weiterhelfen.
Gruß
Nepumuk


Bild


Betrifft: AW: Abbrechen der Dateiauswahl
von: Danni
Geschrieben am: 17.11.2003 17:39:19

Hallo Nepumuk,

danke für's Hilfeangebot. Hier mal ein paar Zeilen des "umliegenden" Codes..

-----------------------------------------------------------------------------------------
Dim WB as Workbook
Dim anz_geplant as Integer

If passw = "passwort_xy" Then

Application.Dialogs(xlDialogOpen).Show
Set WB = ActiveWorkbook
MsgBox "ausgewählte Datei: " & WB.Name 'das funktioniert

'und hier geht's halt weiter mit Zählen der Datensätze der geöffneten Datei
WB.Worksheets("Dokumentationsplanung").Activate
a = 3
While Not IsEmpty(Cells(a, 1))
a = a + 1
Wend
anz_geplant = a - 3

...
-----------------------------------------------------------------------------------------

Das Auswählen der Datei klappt wunderbar, nur wenn ich "Abbrechen" klicke krieg ich w.g. den Fehler...

Wahrscheinlich ist der Fehler die Zeile Set WB = Active.Workbook.
Ich bräuchte vielleicht eine Schleife, die fragt:
If "eine Datei ausgewählt wurde" Then
Set WB = Active.Workbook.
Else
Msgbox "es wurde abgebrochen"
Exit Sub
End If

Danke, Danni


Bild


Betrifft: AW: Abbrechen der Dateiauswahl
von: Nepumuk
Geschrieben am: 17.11.2003 17:57:12

Hallo Danni,
versuch es mal so:

Dim WB As Workbook, varDateiname As Variant
Dim anz_geplant As Integer, myWorksheet As Worksheet, bolgefunden As Boolean
If passw = "passwort_xy" Then
varDateiname = Application.GetOpenFilename("Excel Files (*.xls), *.xls")
If varDateiname = False Then Exit Sub Else MsgBox "ausgewählte Datei: " & CStr(varDateiname), 64, "Information"
Set WB = Workbooks(varDateiname)
For Each myWorksheet In WB.Worksheets
    If myWorksheet.Name = "Dokumentationsplanung" Then bolgefunden = True: Exit For
Next
If Not bolgefunden Then Exit Sub
'und hier geht's halt weiter mit Zählen der Datensätze der geöffneten Datei
WB.Worksheets("Dokumentationsplanung").Activate
a = 3
While Not IsEmpty(Cells(a, 1))
    a = a + 1
Wend
anz_geplant = a - 3


Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk


Bild


Betrifft: AW: Abbrechen der Dateiauswahl
von: Danni
Geschrieben am: 17.11.2003 18:40:26

Hey Nepumuk,

genau sowas wollte ich - allerdings funktioniert diese Zeile nicht:
Set WB = Workbooks(varDateiname)

Da krieg ich immer einen Laufzeitfehler) "Index außerhalb des gültigen Bereichs..."

Eine Idee warum??
...Danni


Bild


Betrifft: AW: Abbrechen der Dateiauswahl
von: Nepumuk
Geschrieben am: 17.11.2003 19:08:44

Hallo Danni,
mein Fehler, so geht's:

Dim WB As Workbook, varDateiname As Variant
Dim anz_geplant As Integer, myWorksheet As Worksheet, bolgefunden As Boolean
If passw = "passwort_xy" Then
varDateiname = Application.GetOpenFilename("Excel Files (*.xls), *.xls")
If varDateiname = False Then
Exit Sub
Else
Workbooks.Open varDateiname
varDateiname = Right(CStr(varDateiname), InStr(1, StrReverse(CStr(varDateiname)), "\") - 1)
MsgBox "ausgewählte Datei: " & CStr(varDateiname), 64, "Information"
End If
Set WB = Workbooks(varDateiname)
For Each myWorksheet In WB.Worksheets
If myWorksheet.Name = "Dokumentationsplanung" Then bolgefunden = True: Exit For
Next
If Not bolgefunden Then Exit Sub

Gruß
Nepumuk


Bild


Betrifft: AW: Abbrechen der Dateiauswahl
von: Danni
Geschrieben am: 18.11.2003 13:46:27

Hallo Nepumuk,

danke für die Antwort...
die Datei wird jetzt geöffnet, aber jetzt hängt's hier:
For Each myWorksheet In WB.Worksheets

und zwar mit dieser Fehlermeldung:
"Objektvariable oder With-Blockvariable nicht festgelegt."

Was bedeutet das denn?? Ich habe myWorksheet as Worksheet deklariert...

Danke nochmal, Danni


Bild


Betrifft: AW: Abbrechen der Dateiauswahl
von: Nepumuk
Geschrieben am: 18.11.2003 16:49:18

Hallo Danni,
lass mich mal deinen Code sehen, da ist irgend etwas nicht in Ordnung. Bei mir funktioniert der nämlich einwandfrei.
Gruß
Nepumuk


Bild


Betrifft: AW: Abbrechen der Dateiauswahl
von: Danni
Geschrieben am: 19.11.2003 09:04:25

Hallo Nepumuk,

war gestern leider nicht mehr online, aber hier der Code:
W.g. schmeißt er mich in dieser Zeile raus: For Each myWorksheet In WB.Worksheets

-----------------------------------------------------------------------------------------
Dim WB As Workbook
Dim myWorksheet As Worksheet
Dim varDateiname As Variant
Dim bolgefunden As Boolean

varDateiname = Application.GetOpenFilename("Excel Files (*.xls), *.xls")

If varDateiname = False Then
MsgBox "Die Dateiauswahl wurde abgebrochen."
Exit Sub
Else
Workbooks.Open varDateiname
varDateiname = Right(CStr(varDateiname), InStr(1, StrReverse(CStr(varDateiname)), "\") - 1)

MsgBox "Ausgewählte Datei: " & CStr(varDateiname), 64, "Information"
End If

bolgefunden = False
For Each myWorksheet In WB.Worksheets
If myWorksheet.Name = "Dokumentationsplanung" Then
bolgefunden = True
Exit For
End If
Next
...
-----------------------------------------------------------------------------------------
Danke nochmals, Danni


Bild


Betrifft: AW: Abbrechen der Dateiauswahl
von: Nepumuk
Geschrieben am: 19.11.2003 16:53:32

Hallo Danni,
du musst das Makro von mir schon komplett verwenden. Bei dir fehlt die Zuweisung an die Objektvariable. Nach den Zeilen:

MsgBox "Ausgewählte Datei: " & CStr(varDateiname), 64, "Information"
End If

muss diese Zeile folgen:

Set WB = Workbooks(varDateiname)

Die Variable bolgefunden musst du nicht auf False setzen, das passiert automatisch durch die Dim - Anweisung.
Gruß
Nepumuk


Bild


Betrifft: Danke!!! ...schwere Geburt für'n Anfänger...(o.T.)
von: Danni
Geschrieben am: 20.11.2003 09:16:28

*


Bild

Beiträge aus den Excel-Beispielen zum Thema " Abbrechen der Dateiauswahl"