Sous VB moderne, altérer une propriété d'un objet provoque un évenement sur cet objet ? Ca facilite pas les choses.
Sinon, prévoir une option dans l'évenement click qui permet de distinguer si c'est un click normal, ou si c'est le développeur qui le provoque
genre :
sub Bouton.Click()
if (Manuel = TRUE) then
else
endif
Manuel = FALSE
end sub
On met Manuel à TRUE avant de provoquer le changement "soft".