Prüfen ob mehrere Tabellen vorhanden

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Prüfen ob mehrere Tabellen vorhanden
von: r2d2
Geschrieben am: 27.10.2015 10:07:14

Hallo,
mit dieser Funktion

Sub WS_vorhanden()
Dim WS As Worksheet
    For Each WS In ActiveWorkbook.Sheets
                                
        If WS.Name = "TEST" Then
            ' Code wenn Blatt vorhanden '
        Else
            ' Code wenn Blatt nicht vorhanden '
        End If
    Next WS
End Sub
kann ich prüfen, ob ein Tabellenblatt vorhanden ist.
Wie müßte ich die Funktion umschreiben, daß geprüft wird ob mehrere Tabellenblätter (z.B. TEST1, TEST2, TEST3, ... TEST5) vorhanden sind?

Bild

Betrifft: AW: Prüfen ob mehrere Tabellen vorhanden
von: r2d2
Geschrieben am: 27.10.2015 10:07:51
Ich vergaß:
Danke für die Hilfe, mit freundlichen Grüßen
r2d2

Bild

Betrifft: AW: Prüfen ob mehrere Tabellen vorhanden
von: Rudi Maintaire
Geschrieben am: 27.10.2015 10:13:58
Hallo,

Sub WS_zaehlen()
  Dim WS As Worksheet, iCount As Integer
  For Each WS In ActiveWorkbook.Worksheets
    If LCase(WS.Name) Like "test*" Then
      iCount = iCount + 1
    End If
  Next WS
  MsgBox iCount
End Sub

Gruß
Rudi

Bild

Betrifft: AW: Prüfen ob mehrere Tabellen vorhanden
von: r2d2
Geschrieben am: 27.10.2015 10:15:41
Das war doch nur ein Beispiel mit TEST1, TEST2, ...
Da könnte jetzt auch PETER, JENS, MARIA, ... stehen
Gruß
r2d2

Bild

Betrifft: AW: Prüfen ob mehrere Tabellen vorhanden
von: r2d2
Geschrieben am: 27.10.2015 10:21:17
Außerdem will ich nicht "zählen" sondern prüfen, ob ganz bestimmte Tabellenblätter in einer Datei vorhanden sind.
Gruß
r2d2

Bild

Betrifft: AW: Prüfen ob mehrere Tabellen vorhanden
von: Rudi Maintaire
Geschrieben am: 27.10.2015 10:31:14
Hallo,
dann

Function SheetExists(strSheetName As String) As Boolean
  Dim wks As Worksheet
  For Each wks In Worksheets
    If LCase(wks.Name) = LCase(strSheetName) Then
      SheetExists = True
      Exit For
    End If
  Next
End Function
Sub aaa()
  MsgBox SheetExists("Peter")
End Sub
Gruß
Rudi

Bild

Betrifft: AW: Prüfen ob mehrere Tabellen vorhanden
von: r2d2
Geschrieben am: 27.10.2015 10:36:53
Nein, leider auch nicht...
Ich möchte nicht jedes Blatt einzeln prüfen, sondern ob bestimmte Blätter in einer Datei vorhanden sind:

Sub einfaches_beispiel()
if ws.name = "Peter" or "Fritz" or "Tina" then ...
End Sub
Oder anders ausgedrückt:
Wenn in einer Arbeitsmappe die Tabellenblätter "Peter" und "Fritz" und "Tina" vorhanden sind (also alle drei (oder vier oder fünf oder ...) dann soll Code 1 ausgeführt werden - und nur dann.
Gruß
r2d2

Bild

Betrifft: AW: Prüfen ob mehrere Tabellen vorhanden
von: Rudi Maintaire
Geschrieben am: 27.10.2015 10:50:03
nochn Versuch:

Function SheetExists(arrSheetNames) As Boolean
  Dim wks As Worksheet, i As Integer, bFound As Boolean
  SheetExists = True
  For i = LBound(arrSheetNames) To UBound(arrSheetNames)
    bFound = False
    For Each wks In Worksheets
      bFound = bFound Or LCase(wks.Name) = LCase(arrSheetNames(i))
    Next
    SheetExists = SheetExists And bFound
  Next
End Function

Sub aaa()
  If SheetExists(Array("Peter", "Tina", "fritz")) Then
    'Code
    MsgBox "alle da"
  Else
    'anderer Code
    MsgBox "nicht alle da"
  End If
End Sub


Bild

Betrifft: AW: Prüfen ob mehrere Tabellen vorhanden
von: r2d2
Geschrieben am: 27.10.2015 11:08:07
Danke, hab's jetzt selber gelöst.
Gruß
r2d2

Bild

Betrifft: AW: Prüfen ob mehrere Tabellen vorhanden
von: Daniel
Geschrieben am: 27.10.2015 10:57:54
Hi
probier mal:


Sub TestBlattVorhanden()
Dim BlätteDieDaSeinMüssen
Dim BDDSM
Dim Zähler
Dim checkWS As Worksheet
BlätteDieDaSeinMüssen = Array("Peter", "Fritz", "Tina")
Zähler = -1
On Error Resume Next
For Each BDDSM In BlätteDieDaSeinMüssen
    Err = 0
    Set checkWS = Sheets(BDDSM)
    If Err = 0 Then Zähler = Zähler + 1
Next
On Error GoTo 0
If Zähler < UBound(BlätteDieDaSeinMüssen) Then
    MsgBox "Es sind noch nicht alle benötigten Blätter vorhanden."
Else
    MsgBox "Alle Blätter vorhanden, das Makro kann ausgeführt werden."
    '---
    'hier dann der Code des Makros
    '---
End If
End Sub
gruß Daniel

Bild

Betrifft: AW: Prüfen ob mehrere Tabellen vorhanden
von: r2d2
Geschrieben am: 27.10.2015 11:08:34
Danke, hab's jetzt schon selber gelöst.
Gruß
r2d2

Bild

Betrifft: AW: Prüfen ob mehrere Tabellen vorhanden
von: Daniel
Geschrieben am: 27.10.2015 11:11:54
Hi
schön.
Stell deine Lösung doch mal hier vor.
Gruß Daniel

Bild

Betrifft: AW: Prüfen ob mehrere Tabellen vorhanden
von: r2d2
Geschrieben am: 27.10.2015 12:01:39


Function tabelleda()
Dim WS As Worksheet
Dim icount As String
    icount = 0
                                
    For Each WS In ActiveWorkbook.Sheets
            
        If WS.Name = "Lutz" Then icount = icount + 1
        If WS.Name = "Herz" Then icount = icount + 1
        If WS.Name = "Ulme" Then icount = icount + 1
        If WS.Name = "test" Then icount = icount + 1
        If WS.Name = "sven" Then icount = icount + 1
        
    Next WS
        
    If icount = 5 Then
    
        ' Code wenn alle 5 Blätter vorhanden sind
        
    Else
        
        ' Code wenn nicht alle 5 Blätter vorhanden sind
        
    End If
End Function


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Prüfen ob mehrere Tabellen vorhanden"