Essaie de commencer par te poser les bonnes questions !
1) tu déclares une variable Ligne ! Pourquoi ? Elle n'est pas initialisée et n'apparaît dans le code exécutable de la macro !
2) tu écris une ligne douteuse ici :
If Target.Column = 6 Or Target.Column = 9 And Target.Value <> "" Then
A la ligne précédente, si Target ="", tu sors ! Cette condition ne se justifie donc pas car elle est forcément réunie si tu n'es pas sorti. Heureusement pour toi car ta ligne ne tient pas compte de la priorité des opérateurs, le And qui prévaut sera évalué avant le Or. Autrement dit la condition écrite est : Target en col. F (que la cellule soit vide ou non !) OU Target en col. I (là seulement avec obligation qu'elle soit vide)
3) Une question que tu aurais dû te poser depuis longtemps !
Active.Cell
Active n'est ni une propriété ni une méthode renvoyant un objet... cette instruction ne peut donc que renvoyer une erreur !
4) Dans la même ligne...
Active.Cell.Offset(cell, 1) = Now
Le premier Cell n'étant aussi ni une propriété ni une méthode ne correspond à rien mais cela fait partie de l'erreur précédente.
Le second cell lui sera reconnu comme variable, mais variable non déclarée et non initialisée, elle renverra 0. Cela n'est peut-être pas plus gênant que cela mais tu aurais dû te poser la question de la façon dont cet élément apparaît brusquement à cet endroit...
De toute façon la ligne est déjà en erreur...
5) Tu es dans une proc. d'évènement, sur une feuille, tu agis sur cette feuille, il est toujours préférable d'utiliser Me pour se référer à la feuille. Et Target pour la cellule active modifiée...
Je ne vois pas ce qui provoquerait une erreur 13, et d'ailleurs tu n'as jamais dit quelle ligne supportait l'erreur (?). La ligne que j'ai soulevée devrait déclencher une autre erreur... La 13 tient peut-être à un autre élément qui n'apparaît pas ici. Mais ce qui est sûr c'est que cette procédure en l'état ne peut fonctionner.
Cordialement.