Bonjour à vous @job75 et merci pour vos explications détaillées
Dans mon cas je cherchais à passer par VBA car la plage des cellules est variable.
Et de cette manière je ne charge pas le fichier de base, car tout est directement appelé via une macro dans un .xlam sur serveur.
Mais je prends bonne note de vos lignes de commandes.
En VBA on utilisera ce code pour la 2ème formule :
VB:
With [D2:Q2] 'plage à adapter
.Validation.Delete
.Validation.Add xlValidateCustom, Formula1:="=NOT(MOD(SUBSTITUTE(SUBSTITUTE(" & .Cells(1).Address(0, 0) & ",""ABS"",),""abs"",)&0,1))"
End With