lorsumalpha
Goto Top

Microsoft Excel: IF-Abfrage ob ein Tabellenblatt existiert

Moin!
Ich würde gerne eine Abfrage machen, ob ein Tabellenblatt mit dem Namen "x" vorhanden ist und dementsprechend eine Formatierung in dieser Zelle anwenden bspw. "Vorhanden".

Testtabelle:

Nicht vorhanden, X
vorhanden, Y

Hat jemand eine Idee?

Content-Key: 4078488035

Url: https://administrator.de/contentid/4078488035

Printed on: May 8, 2024 at 17:05 o'clock

Member: SlainteMhath
SlainteMhath Sep 27, 2022 at 13:07:09 (UTC)
Goto Top
Member: lorsumalpha
lorsumalpha Sep 27, 2022 at 13:15:28 (UTC)
Goto Top

Moin, guter Ansatz - wie genau kann ich bspw.
 
Function WorksheetExists(sName As String) As Boolean
    WorksheetExists = Evaluate("ISREF('" & sName & "'!A1)")  
End Function

anwenden? Kenne mich nicht so mit VBA aus ;)
Member: colinardo
colinardo Sep 27, 2022 updated at 13:27:51 (UTC)
Goto Top
Servus.

z.B. Anwendung mittels bedingter Formatierung und UDF

screenshot

screenshot

screenshot

screenshot

Oder die Nutzung der Funktion in deiner gewünschten Formel in einer Zelle

screenshot

Grüße Uwe
Member: lorsumalpha
lorsumalpha Sep 27, 2022 at 13:38:54 (UTC)
Goto Top
@colinardo
Bei mir funktioniert die Nutzung der Funktion direkt nicht:
2022-09-27 15_36_29-window
2022-09-27 15_36_59-window
Member: em-pie
Solution em-pie Sep 27, 2022 at 13:45:33 (UTC)
Goto Top
Moin,

es geht auch OHNE VBA
Zwei Tabellenblätter existieren
Sheet1 und Sheet2

In Sheet1 kommt in A1 das gesuchte Tabellenblatt "Sheet2"
In Sheet1 kommt in A2 das gesuchte Tabellenblatt "Sheet3"
In B1 (Zeile 1) bzw. B2 (Zeile 2)
=WENNFEHLER(INDIREKT(A1&"!A99");"ERROR")  
=WENNFEHLER(INDIREKT(A2&"!A99");"ERROR")  

Was passiert hier: mit Indirekt kannst du dir einen abzufragenden Zellwert zusammensetzen. "Ich" möchte hier aus dem angegebenen Tabellenblatt den Wert aus Zelle A99 auslesen. da es aber Sheet3!A99 nicht gibt, gibt es einen Fehler, den ich mit WENNFEHLER() abgefangen habe.

Nach der Logik kannst du auch deine bedingte Formatierung aufbauen:
=WENNFEHLER(INDIREKT("Sheet3!A99");"ERROR") = "ERROR" --> mache rot

Gruß
em-pie
Member: lorsumalpha
lorsumalpha Sep 27, 2022 at 14:09:37 (UTC)
Goto Top
Zitat von @em-pie:

Moin,

es geht auch OHNE VBA
Zwei Tabellenblätter existieren
Sheet1 und Sheet2

In Sheet1 kommt in A1 das gesuchte Tabellenblatt "Sheet2"
In Sheet1 kommt in A2 das gesuchte Tabellenblatt "Sheet3"
In B1 (Zeile 1) bzw. B2 (Zeile 2)
=WENNFEHLER(INDIREKT(A1&"!A99");"ERROR")  
=WENNFEHLER(INDIREKT(A2&"!A99");"ERROR")  

Was passiert hier: mit Indirekt kannst du dir einen abzufragenden Zellwert zusammensetzen. "Ich" möchte hier aus dem angegebenen Tabellenblatt den Wert aus Zelle A99 auslesen. da es aber Sheet3!A99 nicht gibt, gibt es einen Fehler, den ich mit WENNFEHLER() abgefangen habe.

Nach der Logik kannst du auch deine bedingte Formatierung aufbauen:
=WENNFEHLER(INDIREKT("Sheet3!A99");"ERROR") = "ERROR" --> mache rot

Gruß
em-pie

Jau hat funktioniert, danke dir und allen anderen!
Member: colinardo
colinardo Sep 27, 2022 updated at 14:24:00 (UTC)
Goto Top
Zitat von @lorsumalpha:

@colinardo
Bei mir funktioniert die Nutzung der Funktion direkt nicht:
2022-09-27 15_36_29-window
2022-09-27 15_36_59-window

Dein verwendeter Code hat ja auch einen kleinen Fehler, schau mal genau hin 😉.