Comment vérifier si une feuille existe à l’aide de VBA ?

Si vous souhaitez créer une feuille, la supprimer, la déplacer ou la copier, vous devez savoir si cette feuille existe ou non.

Pour écrire du code pour vérifier si la feuille existe ou non, vous avez besoin d’une boucle qui parcourt chaque feuille du classeur et correspond au nom que vous avez fourni. Mais voici le truc, vous pouvez utiliser deux boucles différentes pour cela ( For Next et For Each ), et aujourd’hui nous utiliserons les deux.

Dans ce didacticiel, nous examinerons différentes façons de procéder. Assurez-vous donc d’avoir l’ onglet développeur sur votre ruban et ouvrez l’ éditeur VBA pour écrire ce code.

Vérifier si une feuille existe dans le classeur actuel

Avec cette boucle, vous pouvez faire référence à toutes les feuilles du classeur et les parcourir une par une pour faire correspondre le nom de la feuille avec le nom de la feuille que vous souhaitez rechercher.

Suivez ces étapes:

  1. Tout d’abord, déclarez une variable à utiliser pour la feuille lors de l’exécution de la boucle et pour stocker le nom de la feuille que vous souhaitez rechercher.
    declare-a-variable-to-use-for-the-sheet
  2. Ensuite, écrivez une ligne de code pour une zone de saisie pour entrer le nom de la feuille que vous souhaitez rechercher.
    line-of-code-for-an-input-box
  3. Après cela, démarrez votre boucle avec le mot-clé For Each. Et utilisez la variable pour faire référence à chaque feuille de calcul du classeur.
    start-your-loop
  4. À partir de là, vous devez écrire une instruction IF THEN ELSE pour faire correspondre le nom de la feuille avec le nom que vous avez entré dans la zone de saisie, puis afficher une boîte de message si la correspondance est trouvée et quitter la procédure.
    write-an-if-then-else
  5. À la fin, une boîte de message pour vous informer s’il n’y a pas de correspondance trouvée.
    message-box-to-show

Liens utiles : Exécuter une macroEnregistreur de macrosVisual Basic EditorManuel de macros personnelles

Code complet :

Sub vba_check_sheet()

Dim sht As Worksheet
Dim shtName As String

shtName = InputBox(Prompt:="Enter the sheet name", _
Title:="Search Sheet")

For Each sht In ThisWorkbook.Worksheets

    If sht.Name = shtName Then

            MsgBox "Yes! " & shtName & " is there in the workbook."
            Exit Sub

    End If

Next sht

MsgBox "No! " & shtName & "is not there in the workbook."

End Sub

Laissez-moi vous expliquer comment cela fonctionne : lorsque vous exécutez ce code, un message s’affiche dans lequel vous devez saisir le nom de la feuille que vous souhaitez rechercher.

Après cela, il parcourt chaque feuille pour faire correspondre le nom avec le nom que vous avez entré, et si le nom correspond à une feuille, il vous montre un message et un autre message s’il n’y a pas de correspondance.

Voici un autre code pour vérifier si une feuille existe ou non.

Sub vba_check_sheet()

Dim sht As Worksheet
Dim shtName As String
Dim i As Long

i = Sheets.Count

shtName = InputBox(Prompt:="Enter the sheet name", _
Title:="Search Sheet")

For i = 1 To i

    If Sheets(i).Name = shtName Then

            MsgBox "Yes! " & shtName & " is there in the workbook."
            Exit Sub

    End If

Next i

MsgBox "No! " & shtName & " is not there in the workbook."

End Sub

Ce code utilise la boucle FOR NEXT et utilise le nombre total de feuilles dans le classeur, et sur cette base, effectuez une boucle dans chaque feuille qui correspond au nom avec le nom que vous avez entré.

Vérifier si la feuille existe dans le classeur fermé

Dans le code suivant, vous avez une boucle qui recherche le nom de la feuille dans un classeur fermé. Pour faire référence au fichier, nous avons utilisé l’adresse du fichier.

Sub vba_check_sheet()

Dim wb As Workbook
Dim sht As Worksheet
Dim shtName As String

shtName = InputBox(Prompt:="Enter the sheet name", _
Title:="Search Sheet")

Application.ScreenUpdating = False

Set wb = Workbooks.Open _
("C:UsersDellDesktopsample-file.xlsx")

For Each sht In wb.Worksheets

    If sht.Name = shtName Then

        wb.Close SaveChanges:=True
        MsgBox "Yes! " & shtName & " is there in the workbook." _
        , vbInformation, "Found"
        Exit Sub

    End If

Next sht

Application.ScreenUpdating = False

MsgBox "No! " & shtName _
& " is not there in the workbook.", _
vbCritical, "Not Found"

End Sub

Lorsque vous exécutez cette macro, elle ouvre le fichier à l’arrière lorsque vous avez désactivé la mise à jour de l’écran, et une fois qu’elle parcourt toutes les feuilles, vous avez le code pour activer la mise à jour de l’écran.

Remarque : Comme vous pouvez le voir, dans l’adresse d’emplacement du fichier, nous avons l’extension de fichier, ce qui signifie que vous devez avoir l’extension correcte du fichier pour vous y référer.

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *