Aller au contenu principal
LogisticiensAvancé25 min

Traiter des données avec une condition If sur Excel

Un exercice corrigé pour faire réagir une macro selon la valeur des cellules avec la condition If en VBA, et s'entraîner sur le fichier Excel à télécharger.

Une macro devient vraiment utile quand elle ne se contente pas de répéter la même opération : elle décide ! La condition If permet à VBA d'agir différemment selon la valeur trouvée dans chaque cellule, passant ainsi de l'automatisation mécanique à l'automatisation intelligente.

Dans cet exercice, tu vas combiner boucle For et condition If pour parcourir un tableau de stocks, marquer les références sous le seuil et appliquer une couleur d'alerte. En revanche, la logique If...Else...End If que tu vas construire ici se transfère directement à n'importe quel tableau de données : suivi de commandes, relances clients, contrôle qualité...

Le saviez-vous ?
En VBA, le signe = sert à comparer les valeurs, pas le == que tu croises dans d'autres langages, et l'opérateur < exclut l'égalité. C'est pour ça que REF-005, avec un stock de 12 pile égal à son minimum, reste « OK » et ne passe pas en « À commander ».

Ce que tu vas construire

  • Comprendre la structure If...Then...Else...End If et son rôle dans une macro.
  • Comparer deux valeurs de cellules avec l'opérateur < à l'intérieur d'une boucle.
  • Écrire un résultat différent selon la condition (« À commander » ou « OK »).
  • Appliquer une couleur de fond conditionnelle avec Interior.Color et RGB().
  • Distinguer les cas limites : l'égalité (12 = 12) n'est pas incluse dans <.

À connaître avant de commencer

  • Savoir écrire une boucle For qui parcourt une plage.
  • Connaître la référence Cells(ligne, colonne).

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

ABCD
1RéférenceStock actuelStock miniStatut
2REF-001410
3REF-0022510
4REF-003815
5REF-0044020
6REF-0051212

Exercice guidé

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

Ta progression
0/2
1
Boucle avec condition IfDans l'éditeur VBA (Alt+F11 > Insertion > Module), écris un Sub MarquerStock avec une boucle For et une condition If qui compare Stock actuel (colonne B) au Stock mini (colonne C) et inscrit « À commander » ou « OK » en colonne D.
2
Ajouter une couleur d'alerteÉtends la macro pour qu'elle colore le fond de chaque cellule Statut en rouge clair (RGB(254, 226, 226)) quand la référence est sous le seuil, puis exécute-la et vérifie les résultats.
Le défi
Ta macro marque et colore déjà les stocks sous le seuil ? Cache le corrigé et ajoute un ElseIf pour gérer un troisième cas, la rupture totale quand le stock vaut 0, sur un fond rouge vif RGB(220, 38, 38).

Astuces pour aller plus loin

ElseIf pour plusieurs paliers

Quand on veut gérer trois cas ou plus (rupture totale, stock faible, OK), on enchaîne les conditions avec ElseIf : If ... Then / ElseIf ... Then / Else / End If. Chaque palier est évalué dans l'ordre, le premier vrai s'applique.

Combine la condition avec une couleur pour un repère visuel immédiat

Écrire le texte et appliquer la couleur dans le même bloc If évite deux boucles séparées. Interior.Color = RGB(254, 226, 226) donne un rouge clair discret ; RGB(220, 38, 38) donne un rouge vif pour les alertes critiques.

Pour aller plus loin sur les boucles VBA

Une fois la condition If combinée à la boucle For, on peut explorer Do While (répéter tant qu'une condition est vraie) et For Each (itérer sur une collection d'objets). Exemples commentés ici : https://blog.ledojo.club/loops-in-vba

3 exercices similaires à traiter des données avec une condition If

01

Planning de production

Créer un planning de production qui calcule automatiquement les dates de livraison en tenant compte des jours ouvrés, des contraintes de capacité et des priorités.
Voir l'exercice

02

Gestion des stocks et réappro

Construire un tableau de gestion des stocks qui calcule le stock disponible, déclenche les alertes de réappro et identifie les surstocks. Gérer 200 références sans stress.
Voir l'exercice

03

Colorer un suivi de stock automatiquement

Mettre en couleur un suivi de stock avec la mise en forme conditionnelle : alertes rouges sous le seuil, barres de données et jeux d'icônes.
Voir l'exercice

Le modèle prêt à l'emploi

Le modèle Excel « Gestion de stock »

Découvre notre fichier de gestion de stock pour suivre entrées, sorties et alertes de réapprovisionnement automatiquement

FAQ

Questions fréquentes

La structure est : If condition Then / instructions / Else / autres instructions / End If. La condition est une expression booléenne (ex. Cells(i, 2).Value < Cells(i, 3).Value). End If est obligatoire pour fermer le bloc.

On utilise la propriété Interior.Color de la cellule avec une valeur numérique de couleur. La fonction RGB(rouge, vert, bleu) convertit trois valeurs (0-255) en cette valeur. Par exemple, Cells(i, 4).Interior.Color = RGB(254, 226, 226) applique un fond rouge clair.

On enchaîne les paliers avec ElseIf : If stock = 0 Then / [rupture] / ElseIf stock < mini Then / [alerte] / Else / [OK] / End If. VBA évalue les conditions dans l'ordre et applique la première qui est vraie.

En VBA, tout bloc If...Then doit se terminer par End If (sauf le If sur une seule ligne sans Else). Si End If est absent, l'éditeur signale une erreur de compilation à l'exécution. Vérifier que chaque If a bien son End If correspondant.