Ok j'ai trouvé votre souci. C'est un peu de ma faute
Dans le code que je vous ai proposé lorsque vous arrivez à la dernière ligne de la colonne A, le code ajoute aussi une virgule dans la liste de validation alors qu'il n'en faut pas. La boucle doit être comme ceci :
For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row
If i < .Range("A" & Rows.Count).End(xlUp).Row Then
tabtype = tabtype & .Range("A" & i) & ","
Else: tabytype = tabtype & Range("A" & i)
End If
Next i
Par contre pourquoi bouclez-vous à l'avance sur 10 lignes pour y placer toutes les listes de validation. En colonne A, vous auriez pu ajouter une liste de validation dès que la cellule précédente en contient une. Exemple vous ajoutez avec le code une liste en A1, dès que votre choix est fait, cela ajoute une liste en A2. et ainsi de suite.
Si ok, je vous donnerai le code Worksheet_change