Cours VBA : les sélections

Nous allons 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 exemple et appuyez sur Entrée.

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

Sub exemple()

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 exemple()

    '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 exemple()

    '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.

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

Sélection d'une plage de cellules

Sub exemple()

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

End Sub

Sélection de cellules distinctes

Sub exemple()

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

End Sub

Sélection d'une plage de cellules nommée

Sub exemple()

    '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 exemple()

    '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 exemple()

    '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).

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 exemple()

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

End Sub
Sub exemple()

    '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 exemple()

    'Sélection des colonnes B à G
    Range("B:G").Select

End Sub
Sub exemple()

    'Sélection des colonnes B à G
    Columns("B:G").Select

End Sub