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 :
- Tout d’abord, déclarez une variable pour faire référence à une feuille de calcul pour la boucle.
- Après cela, démarrez la boucle avec le mot-clé « Pour chaque » et reportez-vous à chaque feuille de calcul du classeur.
- 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.
- À la fin, utilisez le mot-clé « End » pour terminer la boucle.
Liens utiles : Exécuter une macro – Enregistreur de macros – Visual Basic Editor – Manuel 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 :
- 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.
- Maintenant, définissez la valeur de la variable « shtCount » équivalente au nombre de feuilles que vous avez dans le classeur.
- 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.
- À 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.
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