Comment parcourir toutes les feuilles à l’aide de VBA dans Excel ?

Il existe deux façons de parcourir toutes les feuilles que vous avez dans un classeur.

  • POUR LA PROCHAINE BOUCLE
  • POUR CHAQUE BOUCLE

1. Utiliser pour chaque boucle

Comme vous le savez, avec FOR EACH, vous pouvez parcourir tous les objets de la collection et dans un classeur, les feuilles de calcul sont une collection de toutes les feuilles de calcul.

Utilisez les étapes suivantes :

  1. Tout d’abord, déclarez une variable pour faire référence à une feuille de calcul pour la boucle.
    declare-a-variable-to-refer
  2. Après cela, démarrez la boucle avec le mot-clé « Pour chaque » et reportez-vous à chaque feuille de calcul du classeur.
    start-the-loop-with-the-keyword
  3. Supposons maintenant que vous souhaitiez entrer une valeur dans la cellule A1 de chaque feuille de calcul, vous pouvez utiliser le code d’écriture comme suit.
    want-to-enter-a-value-in-the-cell
  4. À la fin, utilisez le mot-clé « End » pour terminer la boucle.
    use-the-keyword-end

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

Sub vba_loop_sheets()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

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

Next ws

End Sub

Ce code parcourt chaque feuille et entre la valeur dans la cellule A1 de chaque feuille. L’avantage d’utiliser cette méthode est qu’elle parcourt toutes les feuilles du classeur.

Et si vous voulez parcourir toutes les feuilles de calcul dans un classeur fermé, utilisez le code comme ci-dessous.

Sub vba_loop_sheets()

Dim wb As Workbook
Dim ws As Worksheet

Application.DisplayAlerts = False

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

For Each ws In wb.Worksheets
    ws.Range("A1").Value = "Done"
Next ws

wb.Close SaveChanges:=True

Application.DisplayAlerts = True

End Sub

2. Utilisez la boucle For Next

Vous pouvez également boucler en utilisant la boucle FOR NEXT , où vous pouvez utiliser le nombre de feuilles pour décider du nombre de boucles à effectuer et utiliser le compteur de boucles pour vous référer à chaque feuille.

Voici les étapes que vous devez suivre :

  1. Tout d’abord, vous devez déclarer deux variables pour stocker la valeur de comptage pour la boucle et une pour le nombre de feuilles que vous avez dans le classeur.
    declare-to-variable-to-write-count-value
  2. Maintenant, définissez la valeur de la variable « shtCount » équivalente au nombre de feuilles que vous avez dans le classeur.
    set-the-value-for-the-shtcount
  3. Après cela, démarrez le code pour la boucle en utilisant le mot-clé « For i » et utilisez le nombre de feuilles de la valeur maximale pour le compteur de boucle.
    start-the-code
  4. À partir de là, vous devez utiliser le compteur de boucles pour parcourir toutes les feuilles et entrer la valeur « Oui » dans la cellule A1 de chaque feuille.
    use-the-loop-counter-to-loop

Code complet

Sub vba_loop_sheets()

Dim i As Long
Dim shtCount As Long

shtCount = Sheets.Count

For i = 1 To shtCount

    Sheets(i).Range("A1").Value = "Yes"

Next i

End Sub

Et si vous souhaitez parcourir un classeur fermé, utilisez le code suivant.

Sub vba_loop_sheets()

Dim i As Long
Dim shtCount As Long

Set wb = Workbooks.Open("C:UsersDellDesktopsample-file.xlsx")
shtCount = wb.Sheets.Count

Application.DisplayAlerts = False

For i = 1 To shtCount

    wb.Sheets(i).Range("A1").Value = "Yes"

Next i

wb.Close SaveChanges:=True

Application.DisplayAlerts = True

End Sub

Ajouter un commentaire

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