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-ID: 4078488035

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

Ausgedruckt am: 22.11.2024 um 13:11 Uhr

SlainteMhath
SlainteMhath 27.09.2022 um 15:07:09 Uhr
Goto Top
lorsumalpha
lorsumalpha 27.09.2022 um 15:15:28 Uhr
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 ;)
colinardo
colinardo 27.09.2022 aktualisiert um 15:27:51 Uhr
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
lorsumalpha
lorsumalpha 27.09.2022 um 15:38:54 Uhr
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
em-pie
Lösung em-pie 27.09.2022 um 15:45:33 Uhr
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
lorsumalpha
lorsumalpha 27.09.2022 um 16:09:37 Uhr
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!
colinardo
colinardo 27.09.2022 aktualisiert um 16:24:00 Uhr
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 😉.