j'ai fait un test de confirmation avec 3 cellules contenant la formule :
Et dans la fenêtre, il s'affiche bien les 3 noms de véhicule.
Le problème est certainement dans la saisie des dates.
Si une des dates est au format texte, ca valeur numérique est nulle et donc jamais équivalente à un nombre (de jours).
Une petite vérification s'il ne traine pas un espace, si la date est saisie avec les bons séparateurs de date.
Au pire, puisqu'il y a peu de voitures une resaisie à la main ou une conversion par une formule avec excel en date.
ESVBA
j'aurais dû commencer par la bonne question !
Dans le code la boucle se fait de la cellule "B1" à la dernière cellule d'une liste non vide rencontrée en descendant (xlDown).
Y a-t-il des lignes vides dans la colonne des dates de CT ? Normalement, non, tout véhicule passera un jour le contrôle technique : il a une date.
S'il y a des lignes vides c'est normal : la boucle s'arrête à la première ligne vide.
Il faut donc changer la boucle :
For Each c In Range("B2:B" & Range("B1").End(xlDown).Row)
par la première cellule rencontrée en partant du bas de la colonne
For Each c In Range("B1:B" & Range("B65362").End(xlup).Row)
Attention:
la valeur de 65362 change suivant qu'il s'agit des version Excel 2010-2007 et les autres. C'est le dernier numéro de ligne.
ESVBA
Partager