Im Grunde musst Du diese eine Quellmappe nur einmal öffnen.
Damit alle 10Sheets (aus verschiedenen Modulen heraus) darauf zugreifen können, brauchst Du eine öffentliche (Objekt)Variable.
Öffentliche Objektvariable bedeutet, die Deklaration muss mit dem Schlüsselwort Public formuliert und an richtiger Stelle deklariert werden.
a) Erzeuge ein neues allg. Modul
b) Benenne es um zu mdlPublic (nicht Coderelevant, aber einfach machen)
c) Schreibe folgenden Code in das Modul "mdlPublic"
Option Explicit
Public wkbQuelle As Excel.Workbook
d) Gehe in 'DieseArbeitsmappe ' und schreibe folgenden Code in dessen Codebereich:
Option Explicit
Private Sub Workbook_Open()
Set wkbQuelle = Application.Workbooks.Open("D:\Hallo\GültigeExcelDatei.xlsx")
End Sub
e) Greife auf die Arbeitsmappe/Objektvariable aus den 10Sheets wie folgt zu:
Option Explicit
Sub Test01()
With wkbQuelle
'*** // TODO with Datei "D:\Hallo\GültigeExcelDatei.xlsx"
End With
End Sub
Option Explicit
Sub Test02_aus_Modul2()
With wkbQuelle
'*** // TODO with Datei "D:\Hallo\GültigeExcelDatei.xlsx"
End With
End Sub
Wichtig:
Bevor das alles Funktioniert, muss die Prozedur Workbook_open() einmal durchlaufen werden.
Entweder in die Prozedur klicken und F5 drücken oder einmal schließen und wieder starten.
|