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