Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1444to1448
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
Inhaltsverzeichnis

Mehrere geöffnete Dateien abfragen

Mehrere geöffnete Dateien abfragen
30.08.2015 14:02:48
Thomas
Hallo,
ich muss 4 Excel Dateien abfragen ob sie geöffnet sind. (Mitte.xlsm, Sued.xlsm, Nord.xlsm und West.xlsm) Nur wenn alle vier geschlossen sind soll das Makro "Aktualisieren" ausgeführt werden. Weiter soll über eine Message Box ausgegeben werden welche Datei(en) geöffnet ist / sind. Für eine Datei bekomme ich das hin, aber bei vier Dateien muss ich leider auch nach umfangreicher Recherche in diversen Foren aufgeben. Vielleicht kann mir ja hier jemand weiterhelfen.
Gruß,
Thomas
Hier der Code für die eine Datei.
Sub DateiOffen()
Dim sFile As String, sPath As String
sFile = "Mitte.xlsm"
sPath = ThisWorkbook.Path & "\" & sFile
If WkbOpen("Mitte.xlsm") = False Then
Call Aktualisieren
Else
MsgBox (sFile) & " ist geöffnet!"
End If
End Sub
Private Function WkbOpen(sFile As String) As Boolean
Dim wkb As Object
On Error Resume Next
Set wkb = Workbooks(sFile)
If Not wkb Is Nothing Then
WkbOpen = True
End If
On Error GoTo 0
End Function

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Dateien abfragen, ob offen
30.08.2015 15:01:04
Gerd
Hallo Thomas!
Sub DateienOffen2()
Dim sFile As String, sPath() As String
Dim arrFiles As Variant
Dim i As Integer
arrFiles = Array("Mitte.xlsm", "Sued.xlsm", "Nord.xlsm", "West.xlsm")
For i = 0 To UBound(arrFiles)
sFile = arrFiles(i)
sPath(i) = ThisWorkbook.Path & "\" & sFile
If WkbOpen(sFile) = True Then GoTo EXITCauseOPEN
Next
Call Aktualisieren
Exit Sub
EXITCauseOPEN:
MsgBox (sFile) & " ist geöffnet!"
End Sub

Private Function WkbOpen(sFile As String) As Boolean
Dim wkb As Object
On Error Resume Next
Set wkb = Workbooks(sFile)
If Not wkb Is Nothing Then
WkbOpen = True
End If
On Error GoTo 0
End Function
Gruß Gerd

Anzeige
AW: Mehrere Dateien abfragen, ob offen
30.08.2015 15:52:51
Thomas
Hallo Gerd,
vielen Dank für Deine schnelle Hilfe. Habe allerdings den Code von Nepumuk verwendet.
Trotzdem besten Dank.
Viele Grüße,
Thomas

AW: Mehrere Dateien abfragen, ob offen
30.08.2015 16:05:39
Werner
Hallo Gerd,
bin hier immer am mitlesen um was zu lernen. Ich hätte eine Frage zu deinem Code.
Warum benutzt du beim Pfad auch die Laufvariable i ein "sPath(i)" ginge das nicht auch ohne?
Danke und Gruß Werner

AW: Mehrere Dateien abfragen, ob offen
30.08.2015 16:23:27
Gerd
Hallo Werner,
doch, es geht auch ohne. Dies habe ich nur für den Fall mit aufgenommen, dass beim aufgerufenen Makro "Akualisieren" bei vier Dateien deren Pfade benötigt werden sollten.
Gruß Gerd

Anzeige
AW: Danke für die Antwort. o.w.T.
30.08.2015 16:56:24
Werner

AW: Mehrere geöffnete Dateien abfragen
30.08.2015 15:32:55
Nepumuk
Hallo,
ich bin kein Freund von "quick & dirty".
Option Explicit

Public Sub ExamineOpenFiles()
    
    Dim avntFileNames As Variant
    Dim ialngIndex As Long
    Dim strFilename As String
    Dim objWorkbook As Workbook
    
    avntFileNames = Array("Mitte.xlsm", "Sued.xlsm", "Nord.xlsm", "West.xlsm")
    
    For ialngIndex = LBound(avntFileNames) To UBound(avntFileNames)
        
        For Each objWorkbook In Application.Workbooks
            
            If objWorkbook.Name = avntFileNames(ialngIndex) Then
                
                strFilename = strFilename & avntFileNames(ialngIndex) & vbLf
                Exit For
                
            End If
        Next
    Next
    
    If strFilename = vbNullString Then
        Call Aktualisieren
    Else
        Call MsgBox(strFilename & vbLf & "ist geöffnet.", vbExclamation, "Hinweis")
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Mehrere geöffnete Dateien abfragen
30.08.2015 15:49:38
Thomas
Hallo Nepumuk,
das ging ja wirklich schnell. Der Code läuft tadellos!
Vielen herzlichen Dank.
Gruß, Thomas

Code von Nepumuk auf Netzlaufwerk
31.08.2015 10:21:59
Nepumuk
Hallo,
der Code von Nepumuk läuft auf einem lokalen Rechner super.
Kann man diesen jedoch so abändern, dass er auch funktioniert wenn auf dem Netzlaufwerk von einem anderen Nutzer auf die Dateien zugegriffen wird?
Alle Dateien liegen immer in demselben Ordner und an demselben Speicherort.
Viele Grüße,
Thomas

AW: Code von Nepumuk auf Netzlaufwerk
31.08.2015 19:01:52
Nepumuk
Hallo,
wie meinst du das? Etwa ob ein anderer Benutzer eine der vier Dateien geöffnet hat? Wird denn in diese Dateien geschrieben, oder nur gelesen?
Gruß
Nepumuk

Anzeige
AW: Code von Nepumuk auf Netzlaufwerk
01.09.2015 09:17:52
Nepumuk
Hallo,
genau darum geht es. Ob ein anderer Nutzer eine der Dateien göffnet hat. Die Nutzer schreiben auch in die jeweiligen Dateien "West", "Mitte", "Sued" und "Nord". Die von den Nutzern eingegebenen Daten werden dann in der Tabelle "Gesamt" zusammengefasst.
Gruß,
Thomas

AW: Code von Nepumuk auf Netzlaufwerk
01.09.2015 09:25:42
Nepumuk
Hallo,
dann öffne die Dateien doch einfach schreibgeschützt, dann spielt es keine Rolle ob die auf einem anderen Rechner geöffnet ist oder nicht. Du hast sowieso keine Möglichkeit per VBA rauszubekommen auf welchem Rechner sie offen ist.
Gruß
Nepumuk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige