PaliSkill
Introduction au VBA

Leçon 8 / 8 — Chapitre 2: Logique conditionnelle et boucles

Éviter Select et Activate

L'enregistreur de macros, vu au Chapitre 1, produit souvent du code truffé de .Select et .Activate — parce qu'il enregistre littéralement les clics de souris, qui sélectionnent toujours quelque chose avant d'agir dessus. Manipuler directement un objet, sans le sélectionner d'abord, rend le code plus court, plus rapide et plus fiable.

Le code produit par l'enregistreur (à éviter en pratique)

Sub CodeEnregistre()
    Range("A1").Select
    Selection.Font.Bold = True
    Range("A1").Select
    Selection.Interior.Color = RGB(220, 230, 241)
End Sub

Le même résultat, écrit directement

Sub CodeDirect()
    Range("A1").Font.Bold = True
    Range("A1").Interior.Color = RGB(220, 230, 241)
End Sub

Chaque propriété s'applique directement à l'objet Range("A1"), sans jamais passer par une sélection visuelle intermédiaire.

Pourquoi c'est important au-delà du style : une macro qui dépend de Selection peut échouer silencieusement ou produire un résultat sur la mauvaise cellule si l'état de sélection change entre deux exécutions — un code qui manipule directement les objets nommés reste fiable quel que soit ce qui était sélectionné avant son lancement.

Un réflexe pour progresser : après avoir enregistré une macro, relire le code généré et retirer systématiquement les .Select/.Activate en regroupant l'action directement sur l'objet ciblé.

Exemple concret : un développeur reprend une macro enregistrée qui contient douze paires .Select / action sur Selection. En les réécrivant pour cibler directement chaque Range, le code passe de 24 lignes à 12 et ne dépend plus de ce qui était sélectionné avant le lancement.

À vous de jouer : reprenez une macro enregistrée par l'enregistreur et réécrivez-la en supprimant tous les .Select/.Activate, en appliquant les actions directement sur les objets ciblés.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 76 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès