Bonsoir ripo, Jacques87, patbart1, lio, Dan, didique et @+Thierry
J'avais préparé quelquechose vers 23h mais comme j'ai eu un coup de fil (aïe !!!), je ne peux poster que maintenant.
Mon fichier n'apporte rien de plus et j'ai hésité à le mettre en pièce jointe car l'exemple de Thierry est suffisamment clair.
Si j'interviens malgré tout, c'est que j'ai vu une erreur de programmation dans le code de lio qui est reprise par Dan dans sa dernière proposition. Les parties de codes concernées sont :
If Range('A1').Value ‹› 1 Or 2
et
Case Is ‹› 1 Or 2
C'est correct en français : 'si la valeur est différente de 1 ou 2', mais pas en programmation car les priorités ont leur importance.
Dans le cas présent, ce qui a été écrit ci-dessus n'est pas interprété, comme on pourrait le penser à priori, comme ceci :
If
(Range('A1').Value
) ‹›
(1 Or 2
),
Mais du fait des priorités, elle l'est comme cela :
If
(Range('A1').Value ‹› 1
) Or
(2
)
Ce qui signifie qu'elle sera toujours évalué comme VRAI, car '2' =
True...
Pour s'en persuader, il suffit de placer cette instruction en première condition pour s'apercevoir qu'elle intercepte tous les appels :ermm:
Bonne nuit à tous
[file name=MacrAuto_Ripo.zip size=11359]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/MacrAuto_Ripo.zip[/file]
A+