Est-ce que quelqu'un sait comment vérifier si certaines feuilles existent ou non dans un document Excel utilisant Excel VBA?
Bien que (malheureusement) une telle méthode n'est pas disponible, nous pouvons créer notre propre fonction pour vérifier cela ..
J'espère que le code ci-dessous correspond à vos besoins.
Edition1: Ajouté également Supprimer la déclaration ...
Sub test()
If CheckSheet(Sheets(3).Name) then
Application.DisplayAlerts = False
Sheets(Sheets(3).Name).Delete
Application.DisplayAlerts = True
End If
End Sub
La solution que j'aurai pour ...
Function CheckSheet(ByVal sSheetName As String) As Boolean
Dim oSheet As Excel.Worksheet
Dim bReturn As Boolean
For Each oSheet In ActiveWorkbook.Sheets
If oSheet.Name = sSheetName Then
bReturn = True
Exit For
End If
Next oSheet
CheckSheet = bReturn
End Function
Sinon, si cela ne vous dérange pas d'utiliser le code qui soulève activement des erreurs (qui n'est pas recommandée par les meilleures pratiques communes de codage), vous pouvez utiliser ceci ' programmation Spartan Wannabe' Code ci-dessous ...
Function CheckSheet(ByVal sSheetName As String) As Boolean
Dim oSheet As Excel.Worksheet
Dim bReturn As Boolean
For Each oSheet In ActiveWorkbook.Sheets
If oSheet.Name = sSheetName Then
bReturn = True
Exit For
End If
Next oSheet
CheckSheet = bReturn
End Function
Function CheckSheet(ByVal sSheetName As String) As Boolean
On Error Resume Next
Dim oSheet As Excel.Worksheet
Set oSheet = ActiveWorkbook.Sheets(sSheetName)
CheckSheet = IIf(oSheet Is Nothing, False, True)
End Function
On Error GoTo Line1
If Sheets("BOX2").Index > 0 Then
Else
Line1: MsgBox ("BOX2 is missing")
end if
Je l'ai fait de cette façon :)
J'ai adapté ce code à utiliser dans LotusScript, l'une des langues utilisées par IBM Notes (anciennement Lotus Notes), comme indiqué ci-dessous.
Public Function ExcelSheetExists( _
xlBook As Variant, _ ' Excel workbook object
ByVal strSheetName As String _
) As Boolean
On Error GoTo errHandler
ForAll xlSheet In xlBook.Sheets
If xlSheet.Name = strSheetName Then
ExcelSheetExists = True
Exit Forall
End If
End ForAll
GoTo Done
errHandler:
' Call MyCustomErrorHandler()
Resume Done
Done:
End Function