Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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

Workbook prüfen wenn vorhanden schließen

Workbook prüfen wenn vorhanden schließen
17.07.2018 12:40:56
Markus
Hallo Community,
folgende Bitte:
ich bräuchte eine Funktion die ich aufrufe oder alles in einer Prozedure, die mir ermittelt ob drei Workbooks vorhanden sind und ob das dritte offen ist.
Ist das dritte Workbook geöffnet und vorhanden soll es geschlossen werden, sonst soll er normal weiter machen.
Wie setze ich das um?
also so was in der art:
if Workbooks(3) exists and open Then
Workbooks(3).close
else
gehe weiter im Code
End if
dabei soll er bei der else Anweisung aber nicht stehenbleiben, wenn er das Workbooks(3) nicht gefunden hat, sondern weiter im Code arbeiten ohne was extra callen zu müssen, geht sowas und wenn ja wie?
Mein bisheriger Code:

Public Function Exists(strName As String) As Boolean
Dim wbb As Workbook
For Each wbb In Application.Workbooks
If wbb.Name = Workbooks(3) or strName Then
'MsgBox wbb.Name & "und" & strName
Exists = True
else
Exists = False
Exit Function
End If
Next wbb
End Function
Sub Test()
If Exists(Workbooks(3)) = True Then
Workbooks(3).Close
MsgBox "Mappe 3 wurde erfolgreich geschlossen"
Else
MsgBox "Keine Mappe 3 vorhanden"
'weiter im Code...
End If
End Sub

Hoffe jemand kann mir sagen was ich da noch ergänzen oder ändern muss.
Beste Grüße
Markus

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

Betreff
Datum
Anwender
Anzeige
AW: Workbook prüfen wenn vorhanden schließen
17.07.2018 13:08:48
Daniel
Hi
ob ein Workbook in einem bestimmten Verzeichnis vorhanden ist, kannst du so prüfen:
if DIR("C:\Order1\Ordner2\Dateiname.xlsx")  "" then
Msgbox "Datei vorhanden"
else
Msgbox "Datei fehlt"
end if
ob eine Datei geöffnet ist, kannst du so prüfen:
dim wb as Workbook
on error resume next
set wb = Workbooks("Dateiname.xlsx")
on error goto 0
if wb is nothing then
msgbox "Datei nicht geöffnet
else
msgbo "Datei geöffnet"
End if
oder auch so:
dim i as Long
for i = 1 to application.Workbooks.count
if Workbooks(i).Name = "Dateiname.xlsx" then Exit for
end if
if i 
andererseits, wenn du nur sicherstellen willst, dass die betroffene Datei nicht geöffnet ist, kannst du sie auch einfach schließen und dabei den Fehlerstop ausschalten:
On Error Resume Next
Workbooks("Dateiname.xlsx").Close
On Error Goto 0

Gruß Daniel
Anzeige
AW: Workbook prüfen wenn vorhanden schließen
17.07.2018 13:36:07
Markus
Hallo Daniel,
danke für die Antwort.
Mein Problem ist ich kenne das Verzeichnis nicht (es ist variabel und nicht fest) und der Name der Datei ändert sich auch ständig.
Ich möchte daher nur prüfen ob ein Workbooks(3) vorhanden und geöffnet ist.
Weder eine Dateiprüfung noch eine Namensprüfung nützen mir etwas, sondern ich bräuchte eine allgemeine Workbooks Exists Prüfung ob geöffnet oder nicht. (siehe oben)
Beste Grüße
Markus
AW: Workbook prüfen wenn vorhanden schließen
17.07.2018 13:40:59
Daniel
Hi
Dann einfach mit Workbooks.Count die Anzahl der geöffneten Dateien abfragen.
Ist die Anzahl größer gleich 3, ist Workbooks(3) vorhanden und geöffnet.
Gruß Daniel
Anzeige
AW: Workbook prüfen wenn vorhanden schließen
17.07.2018 15:49:59
Markus
Hallo Daniel,
danke ja genau das hat funktioniert. :)
Eine Frage habe ich aber noch: Kann man Workbooks die man schließt aus dem Speicher von Excel entfernen?
Bei mir schleppt er manchmal wenn er wieder öffnet alte geschlossene Workbooks wieder mit und öffnet die statt den eigentlichen.
Durch die Methode jetzt kann ich dem zwar Herr werden, aber mich würde trotzdem interessieren ob so was geht und wenn ja wie da der Code dafür aussehen würde.
Also quasi Workbooks komplett aus dem Speicher löschen nach Schließung. Dabei erfolgte die Schließung als auch das wiederöffnen per VBA.
Beste Grüße
Markus
Anzeige
das Problem sagt mir jetzt nichts. owt
18.07.2018 12:43:41
Daniel
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige