Bonjour Dreamsodfa le forum
moi j'aime lire
je viens d'appliquer votre macro sur un autre exemple
mais sa marche pas ?
Quand on modifie une macro n'importe comment, oui c'est vrai que cela ne fonctionnera pas, c'est normal.
est-ce que tu as recopié la macro que je t'ai donné?? Non tu as seulement copié une partie.
est-ce que tu as seulement essayé de comprendre ce que fait cette macro???
c'est certain que non.
Si cette macro doit pouvoir être lancée, même si tu es sur une autre feuille que la feuille Data, lors de la fermeture par exemple, tu ne peux pas utiliser [B7], mais sheets("Data").range("B7")
Car dans ce cas, cela signifie que tu te rapportes à la feuille active, qui ne sera pas obligatoirement la feuille Data!!!!
et alors le bouquet
For Each sh In Array("SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE", "JANVIER")
.Range("B1") = [B7]
Le "." devant le Range s'utilise avec with sheets(sh) , pour justement éviter de devoir à chaque ligne mettre sheets(sh)
mais dans ce que tu as modifié, bah elle doit être copiée ou la valeur de B7 ???
Tu penses que la macro va le deviner?? Il faut réfléchir un peu avant de faire les choses.
il faut:
For Each sh In Array("SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE", "JANVIER")
with Sheets(sh)
.Range("B1") =Sheets("Data").Range("B7")
et dans ce cas là, si la macro est lancée de n'importe ou dans le classeur, tu colleras bien les valeurs de Data dans les autres feuilles
a+
Papou