Il peut y avoir un moment où vous devez vérifier si une feuille de calcul, que vous avez créée ou supprimée dans un classeur dans une macro / code VBA, existe. Nous pouvons le faire facilement en utilisant une fonction / macro. Il existe plusieurs façons de vérifier si une feuille de calcul existe.

Nous couvrirons les manières suivantes dans cet article:

{vide} 1. Fonction définie par l’utilisateur appelée UDF 2. Sous-routine via la boîte de message

Première option: fonction définie par l’utilisateur

L’instantané suivant contient quelques noms de feuilles et nous vérifierons si les noms de feuille dans la colonne A existent.

img1

Pour savoir si une feuille spécifique existe, nous devons suivre les étapes ci-dessous pour lancer l’éditeur VB Cliquez sur l’onglet Développeur Dans le groupe Code, sélectionnez Visual Basic

img2

  • Copiez le code ci-dessous dans le module standard

Option Explicit

Function WorksheetExists(ByVal WorksheetName As String) As Boolean

Dim Sht As Worksheet

For Each Sht In ThisWorkbook.Worksheets

If Application.Proper(Sht.Name) = Application.Proper(WorksheetName) Then

WorksheetExists = True

Exit Function

End If

Next Sht

WorksheetExists = False

End Function

img3

Afin de vérifier, nous utiliserons UDF dans la cellule B2 comme = WorksheetExists (A2)

img4

  • Dans l’image ci-dessus, «MasterSheet» n’existe pas dans notre exemple de classeur; par conséquent, la formule a donné la réponse False

Explication du code:

Cette fonction prend la valeur de «WorksheetName» de la macro qui exécute d’autres activités. Si vous devez le modifier selon votre code, vous pouvez.

For Each Sht In ThisWorkbook.Worksheets et Next Sht sont respectivement les parties de début et de fin de la boucle.

Then If Application.Proper (Sht.Name) = Application.Proper (WorksheetName) Then _ WorksheetExists = True_ Vérifie si le nom de la feuille correspond au nom de la feuille transmis par la macro principale. Si c’est le cas, WorksheetExists a la valeur True et nous pouvons quitter la fonction. Sinon, WorksheetExists = False est renvoyé à la macro principale. La boucle va de la 1ère feuille à la suivante jusqu’à ce que toutes les feuilles aient été vérifiées.

SecondOption: Sous-routine via la boîte de message

Nous pouvons avoir un sous-programme normal qui appelle un UDF et, si la feuille spécifiée est trouvée, la boîte de message affichera, « feuille existe »; si non trouvé, alors msgbox apparaît, «feuille non trouvée».

Pour vérifier, nous allons copier le code suivant dans le module standard:

Function WorksheetExists2(WorksheetName As String, Optional wb As Workbook) As Boolean

If wb Is Nothing Then Set wb = ThisWorkbook

With wb

On Error Resume Next

WorksheetExists2 = (.Sheets(WorksheetName).Name = WorksheetName)

On Error GoTo 0

End With

End Function

Sub FindSheet()

If WorksheetExists2("Sheet1") Then

MsgBox "Sheet1 is in this workbook"

Else

MsgBox "Oops: Sheet does not exist"

End If

End Sub

img5

Après avoir exécuté la macro «FindSheet», nous obtiendrons la boîte de message suivante si la feuille existe:

img6

Si la feuille n’existe pas, nous obtiendrons la boîte de message suivante:

img7

De même, nous pouvons avoir une simple boucle IF qui vérifie si la feuille existe et effectue certaines actions par la suite.

Sub test()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

If ws.Name <> "Main" Then

ws.Range("A1").Value = ws.Name

Else

ws.Range("A1").Value = "MAIN LOGIN PAGE"

End If

Next ws

End Sub

img8

Pour tester la macro ci-dessus, nous devons créer un nom de feuille «Main». Cette macro est très simple Elle parcourt chaque feuille de calcul du classeur Ensuite, elle vérifie si le nom de la feuille de calcul n’est pas PRINCIPALE Si elle est PRINCIPALE, elle affiche du texte, comme «PAGE DE CONNEXION PRINCIPALE» dans A1 de cette feuille, sinon elle affiche le nom la feuille dans la cellule A1

img9

C’est juste une autre façon de vérifier si la feuille existe. S’il existe, effectuez l’action A, sinon, l’action B Conclusion: * Nous pouvons identifier si une feuille existe dans notre classeur ou non; nous pouvons utiliser UDF ou sous-programme selon notre convenance.

image 48

Si vous avez aimé nos blogs, partagez-les avec vos amis sur Facebook. Et vous pouvez aussi nous suivre sur Twitter et Facebook.

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer, compléter ou innover notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]