Comment puis-je savoir si la feuille existe dans un classeur?

J'ai le code suivant qui ne fonctionne pas comme prévu:

If Sheets("a") <> "" Then MsgBox ("sheet a exists") 

Comment puis-je savoir si la feuille a existe dans le classeur?

    Je ferais une fonction distincte pour cela:

     Function SheetExists(SheetName As String) On Error GoTo no: WorksheetName = Worksheets(SheetName).Name SheetExists = True Exit Function no: SheetExists = False End Function 

    Ensuite, vous pouvez facilement l'appeler là où vous le souhaitez, même dans une formule si vous le souhaitez:

     Sub ABC() If SheetExists("Test") Then MsgBox "Yay!" Else MsgBox "Boo!" End If End Sub 

    ou

     =If(SheetExists("Test"),"Yay!","Boo") 

    Vous pouvez vérifier l'erreur. par exemple:

     Dim A As String On Error Resume Next A = Worksheets("a").Name Select Case Err.Number Case 9 MsgBox "Sheet ""a"" does not exist" Case 0 MsgBox "Sheet ""a"" exists" Case Else Stop End Select On Error GoTo 0 

    Quelque chose comme:

     Sub DoesSheetExist() Dim s As Worksheet For Each s In Sheets If s.Name = "a" Then MsgBox "Sheet a exists" Exit Sub End If Next s MsgBox "Sheet a does not exist" End Sub 
     If (Worksheets("a").Name <> "") Then MsgBox ("sheet A exists") 

    Cela fonctionne comme prévu