Utiliser la propriété Offset pour selectionner une plage de cellules, Excel vba

Il arrive parfois que vous voulez selectionner une plage  de n’importe quelle cellule. Dans la macro suivante, à partir de la cellule actuellement active, une plage de cellules est sélectionnée.

Sub SelectPlageCellule()
Worksheets("Feuil1").Activate
Range(ActiveCell(), ActiveCell.Offset(5, 10)).Select
End Sub

Dans les deux exemples suivants, à partir de la cellule active, une cellule de la ligne supérieure ou inférieure est incluse dans la selection.

Sub SelectPlageCellule()
On Error Resume Next
Range(ActiveCell, ActiveCell.Offset(-1, 0)).Select
End Sub

Pour déterminer la cellule ci-dessus, vous devez utiliser le premier argument, qui représente la ligne, avec la valeur -1. Cela déplace le pointeur de cellule de 1 ligne exactement. À l’aide de la propriété Range, vous pouvez ensuite combiner les deux cellules dans une sélection. Vous devez utiliser l’instruction On Error Resume Next par précaution au cas où le pointeur de la souris se trouve déjà dans une cellule de la première ligne. Dans ce cas, il n’est bien sûr pas possible de selectionner la cellule ci-dessus. Si vous oubliez cette instruction, votre macro se bloquera.
Si vous souhaitez sélectionner la cellule active et la cellule juste en dessous, utilisez le code suivant:

Sub SelectPlageCellule()
On Error Resume Next
Range(ActiveCell, ActiveCell.Offset(1, 0)).Select

End Sub

Pour trouver la cellule en dessous, vous devez insérer le premier argument, qui représente la ligne, avec la valeur 1. Cela déplace le pointeur de cellule vers le bas sur exactement 1 ligne. À l’aide de la propriété Range, vous pouvez ensuite combiner les deux cellules dans une sélection. Utilisez l’instruction On Error Resume Next au cas où le pointeur de la souris se trouve sur la dernière ligne de votre feuille de calcul. La dernière ligne de votre tableau serait exactement la ligne 65536. Ce cas est peu probable, mais il est certain qu’il est sûr.
Dans l’exemple suivant, une zone doit être réduite. Imaginez que vous ayez une liste de ventes quotidiennes. Cette liste peut être conservée par vous sur un ordinateur professionnel et vous importez cette liste dans une feuille de calcul Excel tous les soirs. La particularité de ce tableau est que vous n’avez pas besoin de toutes les lignes et colonnes. La dernière ligne du tableau contient toujours des caractères de contrôle inutilisables dans Excel. De même, vous ne souhaitez disposer que des deux premières colonnes pour votre traitement dans Excel. Jetez un œil à la situation initiale.

Après l’importation dans Excel, vous disposez de trop de données dont vous n’avez pas besoin en totalité. Utilisez maintenant la macro suivante pour extraire uniquement les données dont vous avez vraiment besoin.

Sub ZoomArriere()
Dim NumLigne As Long
Dim NumColonne As Integer
Worksheets("Feuil1").Activate
Range("A1").Select

NumLigne = ActiveSheet.UsedRange.Rows.Count
NumColonne = ActiveSheet.UsedRange.Columns.Count
Selection.Resize(NumLigne - 1, NumColonne - 1).Select
End Sub

Au début de la macro, définissez les deux variables NumLigne et NumColonne. Dans ces deux variables, vous enregistrez les lignes et les colonnes utilisées dans la feuille de calcul. Étant donné qu’une feuille de calcul Excel peut avoir jusqu’à 65 536 lignes, vous devez définir les lignes variables avec le type de données Long pour être du bon côté. Puisqu’un tableau Excel peut avoir un maximum de 256 colonnes, le type de données Integer est suffisant pour la variable NumColonne. Après avoir annoncé les variables, activez le tableau en question avec la méthode Activate et définissez le pointeur de cellule sur la cellule A1 à l’aide de la méthode Select. Utilisez maintenant la propriété UsedRange pour déterminer le nombre de lignes utilisées. Pour qu’Excel sache exactement ce qui doit se produire, vous devez ajouter la propriété Rows à cette propriété. Suivez ces instructions avec le nombre de propriétés. Toutes les lignes utilisées dans la table active sont désormais comptées et enregistrées dans les lignes variables. Suivez les mêmes étapes pour déterminer quelles colonnes sont utilisées. Dans ce cas, cependant, utilisez la propriété Columns et enregistrez le résultat dans la variable Columns. Maintenant, la propriété Resize est utilisée. Dans cette propriété, spécifiez la zone à réduire. Étant donné que la zone entière ne doit pas être sélectionnée, soustrayez 1 du nombre de lignes utilisées et soustrayez du nombre de colonnes utilisées n la valeur 1, dans le premier cas pour exclure les caractères de contrôle de la ligne 13 et dans l’autre colonne C du marquage.

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x
()
x