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 :
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 SubCréez maintenant un bouton de formulaire auquel vous allez associer cette macro (vide pour le moment) :
Complétez votre macro avec ceci :
Sub selection()
'Sélection de la cellule A8
Range("A8").Select
End SubVous 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 SubExcel active alors la feuille 2 avant de sélectionner la cellule A8.
Sélection de cellules distinctes :
Sub selection()
'Sélection des cellule A8 et C5
Range("A8, C5").Select
End SubSélection d'une plage de cellules :
Sub selection()
'Sélection des cellules A1 à A8
Range("A1:A8").Select
End SubSé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
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 SubCette 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 SubIci, 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 SubDécalage de 2 lignes vers le bas et 1 colonne vers la droite à partir de la cellule active, puis sélection :
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 SubSub selection()
'Sélection des lignes 2 à 6
Rows("2:6").Select
End SubSé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 SubSub selection()
'Sélection des colonnes B à G
Columns("B:G").Select
End Sub
