Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1860to1864
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

prüfen ob Mappen geöffnet sind

prüfen ob Mappen geöffnet sind
17.12.2021 16:31:30
Günther
Hallo zusammen,
habe heute mal eine Frage bzgl. der Verwendung von VBA-Befehlen in einer einzelnen Excel-Zelle.
Mein Ansatz ist folgender:
Ich habe eine Tabelle "Ruf-Namen" - Spalte B5:B100 enthält Programmaufruf-Namen (Test1.xlsm, Test5.xls; Test99.xlsm, usw. usw.)
Jetzt möchte ich gerne in Spalte C5:C100 den Hinweis "offen" stehen haben wenn diese Anwendung aus B5:B100 momentan geöffnet ist.
Mir ist " IsWorkBookOpen(Name) " bekannt aber ich weiß nicht ob und wie ich es verwenden könnte damit diese Anzeige funktioniert.
Geht das überhaupt oder was gäbe es für eine Alternative?
Bin für jeden Tipp dankbar und hoffe auf Eure Unterstützung.
Schon mal besten Dank, Servus Günther

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: prüfen ob Mappen geöffnet sind
17.12.2021 17:03:05
Piet
Hallo
teste bitte mal diesen kleinen Code. Bei With Worksheets musst du noch deinen Tabellen Namen wo die Liste stehen soll angeben. (Zum Test war es Tabelle3)
mfg Piet
  • 
    Sub Datei_geöffnet_prüfen()
    With Worksheets("Tabelle3")
    MsgBox Workbooks.Count & "  offene Mappen"
    Range("C5:C100").ClearContents
    'Schleife zum auflisten aller Offenen Mappen
    For j = 1 To Workbooks.Count
    For Each AC In Range("B5:B100")
    If Workbooks(j).Name = AC.Value Then
    AC.Offset(0, 1) = " Offen"
    End If
    Next AC
    Next j
    End With
    End Sub
    

  • AW: prüfen ob Mappen geöffnet sind
    17.12.2021 17:26:53
    Günther
    Hallo Piet,
    danke für Deine rasche Antwort und Hilfe.
    Sorry, aber jetzt glaube ich dass ich mich irgendwie falsch ausgedrückt habe.
    Ich habe bereits ein ähnliches Makro das mir alle offenen Mappen auflistet.
    Das bedeutet aber dass ich dieses Makro immer aufrufen muss.
    Daher habe ich gedacht, ich könnte in der Zelle D5:D100 direkt die Abfrage nur für die Anwendung in Zelle B5:B100 abfragen und darstellen
    ohne dass ich immer ein Makro starten muss.
    Also praktisch in diesem Sinne müsste dann folgende Abfrage in den Zellen D5:D100 stehen: :
    D5 = wenn Anwendung "Wert aus B5" ist geöffnet - dann schreibe in Zelle "D5" den Wert "offen". - ansonsten Blank
    D6 = wenn Anwendung "Wert aus B6" ist geöffnet - dann schreibe in Zelle "D6" den Wert "offen". - ansonsten Blank
    usw. usw.
    Geht so etwas überhaupt?
    mfg Günther
    Anzeige
    AW: prüfen ob Mappen geöffnet sind
    17.12.2021 17:41:12
    Daniel
    HI
    willst du wissen, ob du selber diese Mappe geöffnet hast?
    das könntest du einfach so prüfen, ob ein Bezug mit INDIREKT funktioniert oder einen Fehler liefert, VBA ist unnötig.
    Allerdings brauchst du dazu auch einen Tabellenblattnamen aus der Tabelle.
    Formel für C5 könnte so aussehen:
    
    =WENN(ISTBEZUG(INDIREKT("'["&B5&"]Tabelle1'!$A$1"));"offen";"geschlossen")
    
    Wenn die einzelnen Dateien unterschiedliche Tabellenblattnamen haben, müsstest du in die Tabelle den Tabellenblattnamen zusätzlich in Spalte C hinterlegen und die Formel dann anpassen:
    
    =WENN(ISTBEZUG(INDIREKT("'["&B5&"]"&C5&"'!$A$1"));"offen";"geschlossen")
    
    sollte das mit dem Tabellenblattnamen nicht praktikabel sein, dann brauchst du VBA.
    ich würde mir hier eine Benutzerdefinierte Funktion schreiben, welche WAHR oder FALSCH zurück gibt und die dann in die Formel einbauen:
    also folgender Code in einem allgemeinen Modul:
    
    Public Function IstDateiGeöffnet(Datei As String) As Boolean
    Application.Volatile
    Dim wb As Workbook
    For Each wb In Application.Workbooks
    If wb.Name = Datei Then Exit For
    Next
    IstDateiGeöffnet = Not wb Is Nothing
    End Function
    
    und in C5 dann die Formel:
    
    =Wenn(IstDateiGeöffnet(B5);"offen";"geschlossen")
    
    Gruß Daniel
    Anzeige
    AW: prüfen ob Mappen geöffnet sind
    17.12.2021 18:15:35
    Yal
    Hallo zusammen,
    vielleicht denke ich zu einfach, aber wenn die Quelldatei offen ist, sieht das Ergebnis von =FORMELTEXT(..) so aus
    =[Timezone.xlsx]Tabelle1!$B$57
    wenn aber die Datei geschlossen, dann
    ='C:\temp\[Timezone.xlsx]Tabelle1'!$B$57
    daher würde
    =WENN(LINKS(FORMELTEXT(A1), 2)="=[";"offen";"geschlossen)
    reichen.
    Oder?
    VG
    Yal
    AW: prüfen ob Mappen geöffnet sind
    17.12.2021 19:37:15
    Günther
    Hallo,
    vielen Dank Euch beiden erstmal.
    Werde beide Hinweise mal ausprobieren und wenn ich nicht weiterkommen sollte, melde ich mich wieder..
    Ein schönes Wochenende,
    viele Grüße
    Günther

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige