Ce n'est pas le cas partout dans mon fichier mais à l'avenir la Colonne C aura forcément une date et dans le formulaire il n'est pas possible d'ajouter une date ou de modifier sans que la donnée "demande de modif" ne soit rentrée.
Donc on peut considérer qu'à chaque ajout, la date de modification (Date_modif) doit être renseignée.
On peut faire un code spécifique qui va contrôler :
- que la date de modification est bien remplie en cas d'ajout ou de modification.
- que chacune des dates mentionnées est toujours supérieur ou égale à la date de modification
OK pour vous ?
NB :
Par contre je vois ceci cette ligne qui n'a pas trop de sens. Mettre un format sur une cellule vide ???
If Appro_prod = "jj/mm/aaaa" Then .Item(ligne, 4) = Format("", "dd/mm/yyyy")
Faites ceci plutôt
If Appro_prod <> "jj/mm/aaaa" Then .Item(ligne, 4) = Format(Appro_prod, "dd/mm/yyyy") else .Item(ligne, 4).clearcontents
Cela supprimera la date éventuelle dans la colonne 4 si par hasard vous remettrez jj/mm/aaaa dans la textbox (cas de changement ou d'erreur par exemple)
@dysorthographie : Pourquoi cette instruction Load Userform1 alors que Userform1.Show suffit ?
Load userform vous oblige à passer par la sub initialize au préalable.
Show est utilisé si par exemple votre Userform est déjà chargée et que vous l'avez masquée via un Hide (par exemple parce que vous avez une deuxième Userform). Dans ce cas la Sub initialize ne sert pas. il vous suffit d'utiliser le Show pour qu'elle revienne à l'avant plan
Si vous n'avez qu'une Userform, au lancement vous pouvez utilisez Show seulement mais autant partir du principe que Load et Show sont tous les deux utiles au démarrage.