Automatiser le repérage des relances clients sur Excel
Un exercice corrigé pour automatiser le repérage des relances clients avec une macro VBA complète (boucle + condition), et s'entraîner sur le fichier Excel à télécharger.
Cet exercice est le projet de synthèse de la série VBA débutant : boucle For, condition If, compteur et MsgBox réunis dans une seule macro. On passe ici de la technique isolée au vrai mini-outil opérationnel !
Tu vas construire une macro qui parcourt un tableau de commandes, teste deux critères simultanément avec And, colore les lignes à relancer et affiche un message récapitulatif. Une fois ce schéma maîtrisé, tu sauras l'adapter à n'importe quelle situation : relances, alertes de stock, rapports automatisés... la logique reste la même.
Ce que tu vas construire
Combiner une boucle For et une condition If dans une seule macro.
Tester deux critères simultanément avec l'opérateur And.
Incrémenter un compteur à l'intérieur d'un bloc conditionnel.
Appliquer une couleur de fond avec Interior.Color et RGB().
Afficher un message récapitulatif avec MsgBox à la fin de la macro.
À connaître avant de commencer
- Maîtriser la boucle For et la condition If en VBA.
- Connaître Cells(ligne, colonne) et la dernière ligne dynamique.
Voici les données de départ de cet exercice. Copie-les ou télécharge le fichier Excel, puis entraîne-toi avant de regarder le corrigé.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Date | Client | Montant | Statut | Action |
| 2 | 05/01/2026 | Acme | 1 500 | En attente | |
| 3 | 08/01/2026 | Bralt | 800 | Payée | |
| 4 | 12/01/2026 | Cima | 2 300 | En attente | |
| 5 | 20/01/2026 | Delos | 950 | En attente | |
| 6 | 25/01/2026 | Egide | 1 200 | Payée | |
| 7 | 02/02/2026 | Fyx | 3 000 | En attente |
Exercice guidé
Coche chaque étape au fur et à mesure. Tente-la dans ton fichier, puis déplie le corrigé.
Astuces pour aller plus loin
Documente ta macro avec des commentaires
En VBA, une apostrophe en début de ligne transforme la ligne en commentaire (elle est ignorée à l'exécution). Ajouter ' Boucle sur les commandes ou ' Compteur de relances rend la macro lisible pour toi et pour tes collègues.
Un MsgBox récapitulatif transforme une macro en mini-outil
Afficher le nombre de relances à la fin évite d'aller compter les lignes colorées à la main. On peut enrichir le message : MsgBox nbRelances & " commande(s) à relancer sur " & (derniereLigne - 1) & " lignes."
Pour aller plus loin sur les boucles VBA
Une fois And maîtrisé, explore Or (au moins une condition vraie), Not (inverse la condition) et les boucles Do While pour les listes de longueur inconnue. Exemples commentés ici : https://blog.ledojo.club/loops-in-vba
3 exercices similaires à automatiser le repérage des relances clients
Tableau de bord commercial
Créer un tableau de bord commercial complet pour suivre tes ventes, ton pipeline et tes objectifs avec des indicateurs visuels.
Voir l'exercice
Analyse des ventes par région
Construire un tableau d'analyse des ventes par région pour identifier tes zones fortes, tes zones en retard et prioriser tes efforts commerciaux.
Voir l'exercice
Pipeline commercial CRM
Construire un pipeline commercial dans Excel pour suivre tes opportunités de la prospection à la signature, calculer la valeur pondérée et prévoir ton CA.
Voir l'exercice
Le modèle prêt à l'emploi
Découvre notre CRM Excel pour suivre contacts, opportunités et relances commerciales au même endroit
Questions fréquentes
On place l'opérateur And entre les deux conditions dans le If : If Cells(i, 3).Value > 1000 And Cells(i, 4).Value = "En attente" Then. And exige que les deux soient vraies ; Or suffit d'une seule vraie. On peut enchaîner autant de conditions que nécessaire.
On déclare une variable compteur (Dim nbRelances As Long), on l'initialise à 0 avant la boucle, puis on l'incrémente avec nbRelances = nbRelances + 1 à l'intérieur du bloc conditionnel. À la fin de la boucle, la variable contient le total des éléments qui ont satisfait la condition.
On ouvre l'éditeur VBA (Alt+F11), on insère un module (Insertion > Module) et on écrit un Sub avec une boucle For qui parcourt les lignes. On applique la logique métier à l'intérieur (condition If, écriture dans une cellule, couleur). On exécute avec F5 ou Alt+F8.
VBA est sensible à la casse par défaut : "En attente" et "en attente" sont différents. Un espace invisible en fin de valeur suffit aussi à faire échouer la comparaison. Pour plus de souplesse, on peut utiliser LCase() pour normaliser : If LCase(Cells(i, 4).Value) = "en attente" Then.
Toute la boîte à outils Excel
Formules, exercices, modèles, raccourcis, lexique : tout ce qu’il te faut pour progresser, en accès libre.
Tout voir





