Hello,
C'est ta gestion des évènements qui n'est pas bonne.
Quand tu modifies un pays et que dans ville tu n'as rien tout va bien, car ville = vide donc pas de changement sur ville.
En revanche, quand ville <> "" et que tu changes un pays, la première action que tu fais c'est un clear de ville, donc changement, donc tu rentres dans l'évènement change de ville ...
Mais ville = "" (avec ton clear) donc le if ne rentre jamais dans le then (évènement change de ville):
If TV(I, 1) = Me.cboM.Value And TV(I, 2) = Me.cboMo.Value Then D(TV(I, 3)) = ""
A la fin de ta boucle donc dico est vide donc plante.