Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  excel makro prüfen ob xlam geöffnet ist

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  excel makro prüfen ob xlam geöffnet ist (1626 mal gelesen)
Bernd P
Ehrenmitglied V.I.P. h.c.
cook-general



Sehen Sie sich das Profil von Bernd P an!   Senden Sie eine Private Message an Bernd P  Schreiben Sie einen Gästebucheintrag für Bernd P

Beiträge: 3358
Registriert: 07.06.2001

erstellt am: 17. Jul. 2014 09:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Bernd P an!   Senden Sie eine Private Message an Bernd P  Schreiben Sie einen Gästebucheintrag für Bernd P

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 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

fritsrol
Mitglied
CAD-Systemingenieur


Sehen Sie sich das Profil von fritsrol an!   Senden Sie eine Private Message an fritsrol  Schreiben Sie einen Gästebucheintrag für fritsrol

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von Bernd P an!   Senden Sie eine Private Message an Bernd P  Schreiben Sie einen Gästebucheintrag für Bernd P

Beiträge: 3358
Registriert: 07.06.2001

erstellt am: 17. Jul. 2014 11:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Servus, danke der ist kürzer!

------------------
<----- 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



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 ansehenElektrotechnik, Elektronik
Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 21. Jul. 2014 10:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz