Es gibt bereits einen Thread zu diesem Thema, den ich mit meinem nur ergänzen möchte.
Ob ein Tabellenblatt vorhanden ist, kann man auch auf folgende Weise prüfen: man schreibt in eine Zelle die Formel (z.B.) =Tabelle2!A1. Gibt es diese Tabelle nicht, erhält man in der Zelle das Ergebnis #BEZUG!, also einen Fehler. Das kann man sich auch in VBA zunutze machen, indem man die Funktion Evaluate ("berechne") verwendet:
Das funktioniert in gewisser Weise selbstverständlich auch, wenn man prüfen will, ob eine andere Arbeitsmappe geöffnet ist, oder ob ein Tabellenblatt in einer anderen Arbeitsmappe vorhanden ist:
Man muss also sehr genau differenzieren, wann und wie man diese Funktion für die Ermittlung des Vorhandenseins eines Tabellenblattes bzw. der Prüfung, ob eine Arbeitsmappe geöffnet ist, einsetzt.
Bis später,
Karin
Ob ein Tabellenblatt vorhanden ist, kann man auch auf folgende Weise prüfen: man schreibt in eine Zelle die Formel (z.B.) =Tabelle2!A1. Gibt es diese Tabelle nicht, erhält man in der Zelle das Ergebnis #BEZUG!, also einen Fehler. Das kann man sich auch in VBA zunutze machen, indem man die Funktion Evaluate ("berechne") verwendet:
Code:
Sub TabVorhanden()
If Not IsError(Application.Evaluate("Tabelle2!A1")) Then
MsgBox "Tabelle2 vorhanden"
Else
MsgBox "Tabelle2 nicht vorhanden"
End If
End Sub
Das funktioniert in gewisser Weise selbstverständlich auch, wenn man prüfen will, ob eine andere Arbeitsmappe geöffnet ist, oder ob ein Tabellenblatt in einer anderen Arbeitsmappe vorhanden ist:
Code:
Sub TabVorhandenAndereMappe()
If Not IsError(Application.Evaluate("[AndereMappe.xlsx]Tabelle2!A1")) Then
MsgBox "AndereMappe geöffnet"
' bzw. MsgBox "Tabelle2 in AndereMappe vorhanden"
Else
MsgBox "AndereMappe nicht geöffent"
' bzw. MsgBox "Tabelle2 in AndereMappe nicht vorhanden"
End If
End Sub
Man muss also sehr genau differenzieren, wann und wie man diese Funktion für die Ermittlung des Vorhandenseins eines Tabellenblattes bzw. der Prüfung, ob eine Arbeitsmappe geöffnet ist, einsetzt.
Bis später,
Karin