Autor
|
Thema: excel makro prüfen ob xlam geöffnet ist (1626 mal gelesen)
|
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001
|
erstellt am: 17. Jul. 2014 09:28 <-- editieren / zitieren --> Unities abgeben:
Servus Hab eine xlam mit diversen Makros die ich aus anderen Excel Dateien aufrufen will. Mit Workbooks.Open Filename:="Pfad\Datei.xlam" funktioniert das recht gut. Dauert aber 1 bis 1,5 Sekunden die xlam zu laden, ich denke aber das ich mir das sparen könnte wenn ich vorher Prüfe ob sie schon offen ist. Hab diese Funktion gefunden die Angibt ob sie offen ist oder nicht nur wo bring ich jetzt mein Workbooks.Open Filename:="Pfad\Datei.xlam" unter?
Code: Option Explicit Public Sub TestePfad() Dim sPfad As String sPfad = "C:\Eigene Dateien\Test.xls" ' Pfad ändern für Tests MsgBox DateiGeoeffnet(sPfad) End Sub Private Function DateiGeoeffnet(DerPfad As String) As Boolean ' Bei shared Workbooks, schreibgeschützten Mappen o.ä.. kann dies auch ein falsch zurückgeben. On Error Resume Next Open DerPfad For Binary Access Read Lock Read As #1 Close #1 If Err.Number <> 0 Then DateiGeoeffnet = True Err.Clear End If End Function
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 17. Jul. 2014 10:44 <-- editieren / zitieren --> Unities abgeben:
Code: Public Sub TestePfad() Dim sPfad As String sPfad = "C:\Eigene Dateien\Test.xls" ' Pfad ändern für Tests If DateiGeoeffnet(sPfad) = False Then Workbooks.Open Filename:="W:\Work\ExcelAddins\eigeneMakros.xlam" End If End SubPrivate Function DateiGeoeffnet(DerPfad As String) As Boolean ' Bei shared Workbooks, schreibgeschützten Mappen o.ä.. kann dies auch ein falsch zurückgeben. On Error Resume Next Open DerPfad For Binary Access Read Lock Read As #1 Close #1 If Err.Number <> 0 Then DateiGeoeffnet = True Err.Clear End If End Function
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fritsrol Mitglied CAD-Systemingenieur
Beiträge: 143 Registriert: 11.12.2002 Windows 10 64 Office 2013 Eplan P8 2.7 HF2 VS 2015 Medusa 2000i2
|
erstellt am: 17. Jul. 2014 11:05 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
Hallo Bernd, wenn Du den Namen der versteckten Workbooks (z.b. *xlam) kennst kannst Du mit folgenden Code checken ob das schon in Excel geladen ist : Dim WB As Workbook On Error Resume Next Set WB = Workbooks("Test.xls") If Err <> 0 Then Debug.Print "Workbook not loaded !" End If On Error GoTo 0 Gruß Roland
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001
|
erstellt am: 17. Jul. 2014 11:27 <-- editieren / zitieren --> Unities abgeben:
|
| Elektroplaner / Elektrokonstrukteur (m/w/d) im Bereich Renewable Gas | Als Tochtergesellschaft der Hitachi Zosen Corporation ist das Green-Tech-Unternehmen Hitachi Zosen Inova (HZI) eine weltweit führende Anbieterin von integrierten Lösungen für die Energiewende und die Kreislaufwirtschaft mit Fokus auf Energy-from-Waste (EfW) und Renewable-Gas (RG). Ihren Hauptsitz hat sie in Zürich. Unsere Tochtergesellschaft Hitachi Zosen Inova BioMethan GmbH entwickelt ... | Anzeige ansehen | Elektrotechnik, Elektronik |
|
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 21. Jul. 2014 10:13 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
Hi Bernd, da dir der Name mindestens eines Tabellenblattes (z.B. "Tabelle1") der xlam-Datei bekannt ist, dann kannst du es auch mit einem Einzeiler lösen: Code: If Not IsError(Evaluate("='[eigeneMakros.xlam]Tabelle1'!A1")) Then Workbooks.Open Filename:="W:\Work\ExcelAddins\eigeneMakros.xlam"
------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |