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 :
- Tout d’abord, déclarez une variable à utiliser comme cellule de la plage à boucler.
- 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.
- Ensuite, vous devez écrire une ligne de code pour effectuer une activité sur chaque cellule dans laquelle nous bouclons la plage.
- À la fin, terminez le code pour une boucle.
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.
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.
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