Worksheets bei Bedarf nachladen

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

Betrifft: Worksheets bei Bedarf nachladen von: C. Kummetat
Geschrieben am: 06.02.2005 14:59:53

Folgendes Problem :
Beim Öffnen einer Tabelle sollen, soweit sich zwei Referenztabellen noch nicht im Speicher befinden, diese Tabellen nachgeladen werden. Nachfolgender Code ist in einem auto_open-Makro untergebracht.

Leider bekomme den Laufzeitfehler 9 (Index außerhalb des gültigen Bereiches) bei der Anweisung "SheetName2 = Workbooks(FileName2).Name", soweit beide Dateien noch nicht um Speicher ist. Wenn sich die erste Datei schon im Speicher befindet, tritt der Fehler nicht auf.

Weiß jemand, warum dieser Fehler auftritt bzw. wie man ihn umgehen kann ?

Christoph

-----------------------------------------------------------------

On Error Resume Next
Dim FileName1 As String, FileName2 As String
Dim Pfad As String, SheetName1 As String, SheetName2 As String

FileName1 = "2004 Auftragsübersicht.xls" 'Zu ladende Datei 1
FileName2 = "2005 Auftragsübersicht.xls" 'Zu ladende Datei 2
Pfad = "G:\Daten\Office\" 'Pfad für Dateien 1 und 2


LoadJahr1:
On Error GoTo NonJahr1 'Datei noch nicht geladen
SheetName1 = Workbooks(FileName1).Name
GoTo LoadJahr2
NonJahr1:
Workbooks.Open FileName:=Pfad & FileName1, UpdateLinks:=3

LoadJahr2:
On Error GoTo NonJahr2 'Datei noch nicht geladen
SheetName2 = Workbooks(FileName2).Name
GoTo AktiviereSheet
NonJahr2:
Workbooks.Open FileName:=Pfad & FileName2, UpdateLinks:=3

AktiviereSheet:
Windows(FileName1).Activate

Bild


Betrifft: AW: Worksheets bei Bedarf nachladen von: RAnton
Geschrieben am: 06.02.2005 17:10:59

Hallo Christoph,
du hast für die VBA-Abarbeitung die Fehlerbehandlung scharf gestellt.

Wenn du dieses ändern willst gehst du so vor:

Extras-Optionen-Allgemein
Fehlerbehandlung "Bei nicht verarbeiteten Fehlern unterbrechen" anklicken.

Fertig.

Gruß
Anton


Bild


Betrifft: AW: Worksheets bei Bedarf nachladen von: C. Kummetat
Geschrieben am: 06.02.2005 19:48:40

Hallo Anton,

leider hat das Ankreuzen dieser Oprion keinerlei Auswirkungen.
Zum einen merkt sich VBA diese Einstellung nicht (muß jedes Mal angeklickt werden), zum anderen tritt der Fehler immer noch auf.

Ratlos : C.


Bild


Betrifft: AW: Worksheets bei Bedarf nachladen von: andre
Geschrieben am: 06.02.2005 20:11:50

Hallo Christoph,
das On Error ist nicht 100%ig. Wenn es mal nicht geht musst Du Deinen code anders aufziehen. Du kannst z.B. in einer Schleife die Namen der offenen Blätter mit Filename1 und Filename2 vergleichen. Bei VBA gut doch kein Problem oder?


Bild


Betrifft: AW: Worksheets bei Bedarf nachladen von: C. Kummetat
Geschrieben am: 07.02.2005 09:22:49

Hallo Andre,

das Problem scheint eher grundsätzlicher Natur zu sein.
Egal, welchen Code ich verwende, beim Aufruf der zweiten Prüfung erscheint stets diese Meldung. Ich hatte es nämlich auch schon mit Windows(x).Acticate versucht, um dann den Fehler hierfür zu verwenden. Aber leider tritt dieses Phänomen immer wieder auf.

C.


Bild


Betrifft: AW: Worksheets bei Bedarf nachladen von: andre
Geschrieben am: 07.02.2005 17:25:38

Hallo Christoph,
Du sollst die Namen erst vergleichen und nicht gleich aktivieren!
For Each mappen In Workbooks()
If mappen.Name = "DichWillIch.xls" Then MsgBox "juhu" ' oder eben aktivieren
Next
Grüße, andre


Bild


Betrifft: AW: Worksheets bei Bedarf nachladen von: C. Kummetat
Geschrieben am: 08.02.2005 08:33:04

Hallo Andre,

das war's offensichtlich.

Danke,
Christoph


Bild


Betrifft: ... schön wenns geklappt hat ;-) o.T. von: andre
Geschrieben am: 08.02.2005 17:18:38




 Bild

Beiträge aus den Excel-Beispielen zum Thema "Diagramme in UF übertragen"