Bonjour kalista, Steelson,
Je crois qu'il y a peut-être des cellules vides en colonne I ; dans ce cas, je propose ce code VBA :
Option Explicit
Sub Vérif()
Dim dlig&, lig&: dlig = Cells(Rows.Count, 9).End(xlUp).Row
For lig = 4 To dlig
With Cells(lig, 9)
If .Value <> "Soldé" And .Value <> "" And .Offset(, 1) = "" Then
Range(.Address).Offset(, 1).Select
MsgBox "Veuillez entrer la date de solde en J" & lig
Exit Sub
End If
End With
Next lig
End Sub
Les lignes où la cellule I est vide sont ignorées ; quand c'est différent de soldé et vide juste à droite (en J) :
1) La cellule J de la ligne est sélectionnée : prêt à y saisir la date de solde (= date d'échéance)
2) Un message est affiché, mais ce serait mieux de l'enlever car on est positionné sur la bonne cellule
3) On sort de la sub pour que l'utilisateur puisse saisir la date ; après : il faudra relancer la macro !
Donc je conseille d'enlever la ligne MsgBox, tout en laissant le Exit Sub
⚠ En cas d'ajout de code VBA entre Next lig et End Sub, il faut impérativement remplacer Exit Sub par Exit For
Dans ce fichier Excel, j'ai mis la ligne MsgBox en commentaire (donc elle n'est pas exécutée) :
Ctrl e ➯ la bonne cellule est sélectionnée ; saisir la date
Ctrl e ➯ la bonne cellule suivante est sélectionnée ; saisir la date
etc...
(si la cellule active reste la même et que ça ne descend plus, c'est que tout est ok !)
dhany