Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
336to340
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
336to340
336to340
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Abbrechen der Dateiauswahl

Abbrechen der Dateiauswahl
17.11.2003 15:54:22
Danni
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

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

Betreff
Datum
Anwender
Anzeige
AW: Abbrechen der Dateiauswahl
17.11.2003 17:14:51
Nepumuk
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
AW: Abbrechen der Dateiauswahl
17.11.2003 17:39:19
Danni
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
Anzeige
AW: Abbrechen der Dateiauswahl
17.11.2003 17:57:12
Nepumuk
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
Anzeige
AW: Abbrechen der Dateiauswahl
17.11.2003 18:40:26
Danni
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
AW: Abbrechen der Dateiauswahl
17.11.2003 19:08:44
Nepumuk
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
Anzeige
AW: Abbrechen der Dateiauswahl
18.11.2003 13:46:27
Danni
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
AW: Abbrechen der Dateiauswahl
18.11.2003 16:49:18
Nepumuk
Hallo Danni,
lass mich mal deinen Code sehen, da ist irgend etwas nicht in Ordnung. Bei mir funktioniert der nämlich einwandfrei.
Gruß
Nepumuk
AW: Abbrechen der Dateiauswahl
19.11.2003 09:04:25
Danni
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
Anzeige
AW: Abbrechen der Dateiauswahl
19.11.2003 16:53:32
Nepumuk
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
Danke!!! ...schwere Geburt für'n Anfänger...(o.T.)
20.11.2003 09:16:28
Danni
*

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige