Comment utiliser la propriété UsedRange dans VBA ?
Dans VBA, la propriété UsedRange représente la plage d’une feuille de calcul contenant des données. La plage utilisée commence à partir de la première cellule de la feuille de calcul où vous avez une valeur jusqu’à la dernière cellule où vous avez une valeur. Tout comme l’exemple suivant où vous avez utilisé la plage de A1 à C11.
Remarque : La propriété UsedRange est une propriété en lecture seule .
Écrire un code avec UsedRange
Utilisez le code suivant.
- Tout d’abord, vous devez spécifier la feuille de calcul.
- Entrez ensuite un point (.) et entrez « UsedRange ».
- Après cela, utilisez la propriété ou la méthode que vous souhaitez utiliser.
- À la fin, exécutez le code.
Sub vba_used_range()
ActiveSheet.UsedRange.Clear
End Sub
Le code ci-dessus efface tout de la plage utilisée de la feuille active.
Copier la plage utilisée
Utilisez le code suivant pour copier l’intégralité de UsedRange.
Sub vba_used_range()
ActiveSheet.UsedRange.Copy
End Sub
Compter les lignes et les colonnes dans la plage utilisée
Il existe une propriété count que vous pouvez utiliser pour compter les lignes et les colonnes de la plage utilisée.
MsgBox ActiveSheet.UsedRange.Rows.Count
MsgBox ActiveSheet.UsedRange.Columns.Count
Les deux lignes de code ci-dessus affichent une boîte de message avec le nombre de lignes et de colonnes que vous avez dans la plage utilisée.
Activer la dernière cellule de la plage utilisée
Vous pouvez également activer la dernière cellule de la plage utilisée (ce serait la dernière cellule utilisée dans la feuille de calcul). Considérez le code suivant.
Sub vba_used_range()
Dim iCol As Long
Dim iRow As Long
iRow = ActiveSheet.UsedRange.Rows.Count
iCol = ActiveSheet.UsedRange.Columns.Count
ActiveSheet.UsedRange.Select
Selection.Cells(iRow, iCol).Select
End Sub
Ce code prend le nombre de lignes et de colonnes à l’aide de la propriété UsedRange, puis utilise ces nombres pour sélectionner la dernière cellule de la plage utilisée.
Reportez-vous à UsedRange dans une autre feuille de calcul
Si vous essayez de vous référer à la plage utilisée dans une feuille de calcul autre que la feuille active, VBA affichera une erreur comme celle-ci.
Ainsi, la feuille de calcul à laquelle vous faites référence doit être activée (seulement alors vous pouvez utiliser la propriété UsedRange).
Sub vba_used_range()
Worksheets("Sheet4").Activate
Worksheets("Sheet4").UsedRange.Select
End Sub
Cela signifie que vous ne pouvez pas faire référence à la plage utilisée dans un classeur fermé. Mais vous pouvez d’abord ouvrir un classeur, puis activer la feuille de calcul pour utiliser la propriété UsedRange.
Obtenir l’adresse de la plage utilisée
Utilisez la ligne de code suivante pour obtenir l’adresse de la plage utilisée.
Sub vba_used_range()
MsgBox ActiveSheet.UsedRange.Address
End Sub
Compter les cellules vides de la plage utilisée
Le code suivant utilise les boucles FOR (For Each) et parcourt toutes les cellules de la plage utilisée et compte les cellules vides.
Sub vba_used_range()
Dim iCell As Range
Dim iRange As Range
Dim c As Long
Dim i As Long
Set iRange = ActiveSheet.UsedRange
For Each iCell In ActiveSheet.UsedRange
c = c + 1
If IsEmpty(iCell) = True Then
i = i + 1
End If
Next iCell
MsgBox "There are total " & c & _
" cell(s) in the range, and out of those " & _
i & " cell(s) are empty."
End Sub
Lorsque vous exécutez ce code, il affiche une boîte de message avec le nombre total de cellules et le nombre de cellules vides.