Aller au contenu principal
CommerciauxAvancé30 min

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.

Dans la vraie vie
On passe ici de la technique isolée au vrai mini-outil : la macro parcourt tes commandes, repère celles à relancer sur deux critères, les colore et t'affiche le total dans un message. Le même schéma se recycle en alerte de stock ou en rapport automatisé.

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

ABCDE
1DateClientMontantStatutAction
205/01/2026Acme1 500En attente
308/01/2026Bralt800Payée
412/01/2026Cima2 300En attente
520/01/2026Delos950En attente
625/01/2026Egide1 200Payée
702/02/2026Fyx3 000En attente

Exercice guidé

Coche chaque étape au fur et à mesure. Tente-la dans ton fichier, puis déplie le corrigé.

Ta progression
0/2
1
Parcourir et appliquer la règle métierDans l'éditeur VBA (Alt+F11 > Insertion > Module), écris le Sub RelancesAFaire avec une boucle For, une condition If testant Montant > 1000 And Statut = « En attente », une coloration jaune clair et un compteur de relances.
2
Exécuter et lire le récapitulatifExécute la macro avec F5 (ou Alt+F8 > RelancesAFaire), vérifie les lignes colorées et lis le message récapitulatif.
Le défi
Ta macro repère les relances avec Montant > 1000 And Statut « En attente » ? Rejoue-la sans le corrigé en remplaçant And par Or, puis observe : la relance se déclenche désormais dès qu'un seul des deux critères est vrai.

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

01

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

02

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

03

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

Le modèle Excel « CRM simple »

Découvre notre CRM Excel pour suivre contacts, opportunités et relances commerciales au même endroit

FAQ

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.

MsgBox est une fonction VBA qui affiche une fenêtre de dialogue. On lui passe une chaîne de texte : MsgBox nbRelances & " commande(s) à relancer.". L'opérateur & concatène le nombre et le texte. La fenêtre s'affiche à la fin de la macro et l'utilisateur clique OK pour fermer.

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.