Cours VBA : les sélections

Nous allons commencer par créer une macro qui sélectionnera une cellule de notre choix.

Ouvrez l'éditeur et ajoutez-y un module :

module - selections

Dans le module, tapez "sub selection" et appuyez sur Enter.

Vous remarquerez qu'Excel a automatiquement ajouté la fin de cette nouvelle procédure :

Sub selection()

End Sub

Créez maintenant un bouton de formulaire auquel vous allez associer cette macro (vide pour le moment) :

macro - selections

Complétez votre macro avec ceci :

Sub selection()
   'Sélection de la cellule A8
   Range("A8").Select
End Sub

Vous pouvez tester cette macro en cliquant sur votre bouton de formulaire, la cellule A8 est alors sélectionnée.

Nous allons maintenant modifier cette macro pour sélectionner la cellule A8 de la seconde feuille :

Sub selection()
   'Activation de la feuille 2
   Sheets("Feuil2").Activate
   'Sélection de la cellule A8
   Range("A8").Select
End Sub

Excel active alors la feuille 2 avant de sélectionner la cellule A8.

Remarque : aidez-vous des commentaires (texte en vert) pour bien comprendre les macros de ce cours.

Sélection de cellules distinctes :

Sub selection()
   'Sélection des cellule A8 et C5
   Range("A8, C5").Select
End Sub

Sélection d'une plage de cellules :

Sub selection()
   'Sélection des cellules A1 à A8
   Range("A1:A8").Select
End Sub

Sélection d'une plage de cellules renommée :

Sub selection()
   'Sélection des cellules de la plage "ma_plage"
   Range("ma_plage").Select
End Sub
ma plage - selections

Sélection d'une cellule en fonction d'un numéro de ligne et de colonne :

Sub selection()
   'Sélection de la cellule de la ligne 8 et de la colonne 1
   Cells(8, 1).Select
End Sub

Cette autre manière de sélectionner permet des sélections plus dynamiques et sera bien utile par la suite.

En voici un petit exemple :

Sub selection()
   'Sélection aléatoire d'une cellule de la ligne 1 à 10 et de la colonne 1
   Cells(Int(Rnd * 10) + 1, 1).Select
   'Traduction :
   'Cells([nombre_aléatoire_entre_1_et_10], 1).Select
End Sub

Ici, le numéro de ligne est : Int(Rnd * 10) + 1, autrement dit : un nombre entre 1 et 10 (inutile de retenir ce code pour le moment).

Décaler une sélection :

Sub selection()
   'Sélection d'une cellule (calculée par rapport à la cellule active actuelle)
   ActiveCell.Offset(2, 1).Select
End Sub

Décalage de 2 lignes vers le bas et 1 colonne vers la droite à partir de la cellule active, puis sélection :

offset - selections

Sélection de lignes :

Il est possible de sélectionner des lignes entières avec Range ou Rows (Rows étant spécifique aux lignes).

Sub selection()
   'Sélection des lignes 2 à 6
   Range("2:6").Select
End Sub
Sub selection()
   'Sélection des lignes 2 à 6
   Rows("2:6").Select
End Sub

Sélection de colonnes :

Tout comme pour les lignes, il est possible de sélectionner des colonnes entières avec Range ou Columns (Columns étant spécifique aux colonnes).

Sub selection()
   'Sélection des colonnes B à G
   Range("B:G").Select
End Sub
Sub selection()
   'Sélection des colonnes B à G
   Columns("B:G").Select
End Sub
Page suivantePage précédente