Comment utiliser VBA pour chaque boucle? (avec des exemples Excel)

Table des matières

Excel VBA pour chaque boucle

VBA For Each Loop parcourt toute la collection d'objets ou d'éléments et effectue un ensemble d'activités similaire. Il prendra en considération tous les objets spécifiés disponibles et effectuera une activité instruite dans chaque objet.

En VBA, il est obligatoire de comprendre les boucles. Une boucle vous permet de mener le même type d'activité pour de nombreuses cellules ou objets dans Excel. Dans l'article d'aujourd'hui, nous allons nous concentrer sur le mécanisme For Each Loop.

Syntaxe

For Each Loop peut parcourir toute la collection d'objets ou d'éléments. Un groupe n'est rien d'autre que «Tous les classeurs ouverts», «Toutes les feuilles de calcul d'un classeur», «Toute la collection de formes et de graphiques du classeur.»

Regardons la syntaxe.

Pour chaque objet de la collection Que faire? Objet suivant

Par exemple, vous avez 10 feuilles dans votre classeur et vous souhaitez masquer toutes les feuilles de calcul sauf celle dans laquelle vous vous trouvez. Pouvez-vous masquer manuellement? Oui, vous pouvez, mais que faire si vous avez 100 feuilles comme ça? N'est-ce pas une tâche fastidieuse et longue à faire? Vous pouvez le faire en utilisant pour chaque boucle.

Comment utiliser For Each Loop dans VBA? (Exemples)

Exemple # 1 - Insérer le même texte dans toutes les feuilles

Nous verrons comment utiliser FOR EACH en VBA avec un exemple simple. Supposons que vous ayez 5 feuilles de calcul dans un classeur et que vous souhaitiez insérer le mot «Bonjour» dans toutes les feuilles de calcul de la cellule A1.

Nous pouvons le faire avec POUR CHAQUE BOUCLE. Une chose dont vous devez vous souvenir ici est que nous effectuons cette activité dans chaque feuille de travail, pas dans la même feuille de travail. Suivez les étapes ci-dessous pour écrire le code VBA.

Étape 1: Démarrez la macro Excel.

Code:

Sub For_Each_Example1 () End Sub

Étape 2: Puisque nous faisons référence aux feuilles de calcul, déclarez la variable comme «Feuille de calcul».

Code:

Sub For_Each_Example1 () Dim Ws As Worksheet End Sub

Étape 3: Maintenant, en utilisant POUR CHAQUE BOUCLE, nous devons faire référence à chaque feuille de calcul dans le classeur actif.

Code:

Sub For_Each_Example1 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Next Ws End Sub

Étape 4: Maintenant, écrivez ce que nous voulons faire dans chaque feuille de travail. Dans chaque feuille de calcul, nous devons mettre le mot «Bonjour» dans la cellule A1.

Code:

Sub For_Each_Example1 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Range ("A1"). Value = "Hello" Next Ws End Sub

Étape 5: Exécutez maintenant ce code manuellement via l'option ou appuyez sur la touche de raccourci F5. Peu importe le nombre de feuilles que vous avez; il insérera le mot «Bonjour» dans toutes les feuilles de calcul.

Exemple # 2 - Masquer toutes les feuilles

Comme indiqué précédemment dans l'article, que se passe-t-il si vous avez des centaines de feuilles à masquer sauf celle dans laquelle vous vous trouvez. En utilisant Pour chaque boucle, nous pouvons masquer toutes les feuilles dans Excel.

Étape 1: démarrez la macro avec votre nom.

Code:

Sub For_Each_Example2 () End Sub

Étape 2: Déclarez la variable comme « Ws».

Code:

Sub For_Each_Example2 () Dim Ws As Worksheet End Sub

Étape 3: Maintenant, dans chaque feuille de calcul, ce que vous devez faire est de masquer la feuille.

Code:

Sub For_Each_Example2 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws End Sub

Étape 4: Mais si vous exécutez le code ci-dessus, il essaiera de masquer toutes les feuilles, mais Excel a besoin d'au moins une feuille visible. Nous devons donc dire quelle feuille ne pas cacher.

Code:

Sub For_Each_Example2 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If Ws.Name "Main Sheet" Then Ws.Visible = xlSheetVeryHidden End If Next Ws End Sub

Le symbole d'opérateur signifie différent de dans VBA .

So code says when you are looping through all the worksheets in the active workbook, hide only if the sheet name is not equal to the sheet name of Main Sheet.

This can be done by using the IF statement in VBA. Write the code as IF Ws.Name “Main Sheet” Then hide or if it is equal to the sheet name “Main Sheet,” then don’t hide.

Step 5: Now run the code using the F5 key or manually. Then, it will hide all the worksheets except the one named “Main Sheet.”

Example #3 - Unhide All the Sheets

We have seen how to hide all sheets except the one we are in. Similarly, we can unhide all the worksheets as well.

We need to change the code from xlSheetVeryHidden to xlSheetVisible.

Code:

Sub For_Each_Example3() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws End Sub

Here we don’t need the IF condition because we are unhiding all the sheets. If you don’t want to unhide any specific sheet, then you can use the IF condition and supply the sheet name.

Example #4 - Protect and UnProtect All the Sheets

Protect All Sheets: We can protect all the sheets in the workbook with just a piece of code. All the principle is the same only thing we need to do here is instead of Ws. Visible, we need to put the code Ws. Protect and type the password.

Code:

Sub For_Each_Example4() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Protect Password:="Excel@2019" Next Ws End Sub

Déprotéger toutes les feuilles: sur une note similaire, en utilisant VBA, nous pouvons également déprotéger toutes les feuilles protégées dans le classeur. Nous devons mettre le mot Unprotect et le mot de passe.

Code:

Sub For_Each_Example6 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 2019" Next Ws End Sub

Choses dont il faut se rappeler

  • Chacun est pour la collection d'objets.
  • Il considérera tous les objets spécifiés dans le classeur spécifié.
  • Lors de la déclaration de la variable, nous avons besoin de l'objet auquel nous nous référons, par exemple, feuille de travail, classeur, graphique, etc.

Articles intéressants...