Tu as des lignes vides dans ton tableau qui décalent les données et détraquent le bon déroulement des boucles de la macro les lignes 34 et 34, les lignes 60 à 68 ,les lignes 93 à 102 etc…
Supprime les et tout ira mieux.
Par ailleurs, tu définies la dernière ligne où doit s’arrêter la macro comme la ligne de la première cellulle non vide de la colonne B en partant du bas.
C’est bon s’il y a une date. Mais ce n’est pas toujours le cas, auquel cas : patatras ! Bug !
Remplace la colonne B par la colonne G :
dlig = .Range("G" & Rows.Count).End(xlUp).Row
Avec tout cela, tout devrait s’arranger.
Bye !