Comment parcourir une plage en utilisant VBA ?

Pour parcourir une plage dans VBA, vous devez utiliser le « Pour chaque boucle ». En utilisant cette boucle, vous pouvez écrire un code dans lequel vous dites à VBA de parcourir chaque cellule de la plage, de la colonne ou de la ligne et d’effectuer une activité spécifique.

Sub vba_loop_range()
Dim iCell As Range
For Each iCell In Range("A1:A10").Cells
    iCell.Value = "Yes"
Next iCell
End Sub

Voici les étapes pour parcourir une plage :

  1. Tout d’abord, déclarez une variable à utiliser comme cellule de la plage à boucler.
    loop-through-range
  2. Après cela, démarrez la boucle « Pour chaque » et utilisez la variable « iCell » pour représenter chaque cellule de la plage pendant la boucle.
    use-icell-variable
  3. Ensuite, vous devez écrire une ligne de code pour effectuer une activité sur chaque cellule dans laquelle nous bouclons la plage.
    write-a-line-of-code
  4. À la fin, terminez le code pour une boucle.
    end-the-code-for-a-loop

Boucle sur toute la colonne et une ligne à l’aide de VBA

De la même manière, vous pouvez parcourir chaque cellule d’une ligne en utilisant le code suivant qui est identique au code que nous avons utilisé dans l’exemple précédent, la seule différence est la plage que nous avons spécifiée.

boucle-par-toute-la-colonne-et-la-ligne

Remarque : Avant de parcourir une colonne ou une ligne entière, vous devez comprendre que la boucle peut prendre un certain temps et que votre Excel peut se figer pendant quelques minutes.

Sub vba_loop_range()

Dim iCell As Range

For Each iCell In Range("A:A").Cells
    iCell.Value = "Yes"  
Next iCell

End Sub

Et de la même manière, vous pouvez utiliser une ligne complète comme plage à parcourir.

Sub vba_loop_range()

Dim iCell As Range

For Each iCell In Range("1:1").Cells
    iCell.Value = "Yes"  
Next iCell

End Sub

Boucle à travers la plage dynamique

Et si vous souhaitez parcourir une plage dynamique de cellules, reportez-vous au code suivant.

boucle à travers la plage dynamique
Sub vba_dynamic_loop_range()

Dim iCell As Range
Dim iRange1 As String
Dim iRange2 As String
Dim rangeName As String

iRange1 = ActiveCell.Address
iRange2 = ActiveCell.Offset(5, 5).Address
rangeName = iRange1 & ":" & iRange2

For Each iCell In Range(rangeName).Cells

    iCell = "Yes"
   
Next iCell

End Sub

Ajouter un commentaire

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