OVH Cloud OVH Cloud

Macro sur plusieurs feuilles

13 réponses
Avatar
Caroline L.
Bonjour à tous !

J'ai une macro qui fait une série d'actions (enlever de la couleur, afficher
certaines lignes et colonnes, imprimer, remettre la couleur, masquer
certaines lignes et colonnes). Cette macro fonctionne très bien lorsque je
sélectionne une seule feuille à la fois. Par contre, si je sélectionne 3
feuilles par exemple, tout est correct sur une feuille mais pas sur les
autres (les actions de la macro ne fonctionnent pas sur toutes les
feuilles).
Y a t-il une certaine ligne de code à insérer au début de la macro qui
dirait : Fait la macro de A à Z sur chaque feuille.

Merci à l'avance pour vos idées

Caroline

3 réponses

1 2
Avatar
Trirème
Bonjour Caroline et MichDenis
Dans le cas où la macro ne devrait pas faire strictement les mêmes
choses aux mêmes endroits sur les feuilles sélectionnées au départ, je
suggère de remplacer le
Sh.Activate par Sh.Select
Le groupe de travail sera ainsi dissocié mais la boucle
For each Sh ... Next sera quand même effectuée sur les onglets
initialement sélectionnés

Cordialement
Trirème

Bonsoir MichDenis,

Super ! Ca fonctionne. Je suis très heureuse.
Gros gros merci à toi !
"michdenis" a écrit dans le message de news:
For Each Sh In ActiveWindow.SelectedSheets
Sh.Activate
'Ta macro

Next




Avatar
Caroline L.
Bonsoir Trirème,

merci pour ton intervention.

la macro fait la même chose sur toutes les feuilles donc pas de problème à
l'horizon

Merci :-)

Caroline


"Trirème" a écrit dans le message de news:
#
Bonjour Caroline et MichDenis
Dans le cas où la macro ne devrait pas faire strictement les mêmes
choses aux mêmes endroits sur les feuilles sélectionnées au départ, je
suggère de remplacer le
Sh.Activate par Sh.Select
Le groupe de travail sera ainsi dissocié mais la boucle
For each Sh ... Next sera quand même effectuée sur les onglets
initialement sélectionnés

Cordialement
Trirème

Bonsoir MichDenis,

Super ! Ca fonctionne. Je suis très heureuse.
Gros gros merci à toi !
"michdenis" a écrit dans le message de news:
For Each Sh In ActiveWindow.SelectedSheets
Sh.Activate
'Ta macro

Next






Avatar
LSteph
Bonjour,

La macrio que je te donnais, (n'ayant pas tout compris en premier lieu)
envisageait de boucler sur les feuilles du classeur.

Aussi comme tu précises que tu as déjà des feuilles sélectionnées ,
SelectedSheets,
(soit un groupe de travail) mon second propos n'est plus d'utiliser cette
macro mais d'effecuer
les actions sur la feuille (en cours) pour toutes les feuilles
sélectionnées.

Mais puisque MichDenis t'a donné une solution complète, tout va bien!

a+

lSteph

"Caroline L." a écrit dans le message de news:
eyT%
Re-bonsoir,

hum, je ne comprends pas ce que tu veux dire. J'ai fait le test en
ajoutant
ton code à mon code et voici.
J'ai une dizaine de feuilles et j'ai sélectionnées 3 d'entre-elle et là
j'ai
lancé la macro. Résultat : toutes les feuilles du classeur ont été
affectées
par la macro alors que je désire que SEULES LES FEUILLES PRÉALABLEMENT
SÉLECTIONNÉES soit affectées par la macro.

Groupe de travail veut-il dire que j'ai sélectionnées plusieurs feuilles ?


Caroline


"LSteph" a écrit dans le message de news:
#K$
Re,
alors si j'ai bien compris tu es en groupe de travail
Donc plusieurs feuilles sont déjà sélectionées tout ce que tu fera sur
activesheet sera retenu pour les autres!

lSteph

"Caroline L." a écrit dans le message de news:

Bonjour LSteph,

Merci pour ton aide !
Ce que tu proposes fonctionne (on se rapproche) mais je ne veux pas que
la


macro s'applique sur toutes les feuilles du classeur, SEULEMENT sur les
feuilles que j'aurai sélectionnées. Tu vois ? Quelle est la petite
subtilité
à ajouter ?

Merci

Caroline


"LSteph" a écrit dans le message de news:

Bonjour Caroline,

Option explicit
Sub masub()
Dim wSh as worksheet
For each wSh in ActiveWorkbook.Worksheets
wSh.activate
'faireicilamacroquifaittoutcequelledoitdanslafeuille
next
end sub

'lSteph
nb: (Il ne s'agit peut-être que de feuilles et pas de graphiques et
celles
que l'on veut traiter
appartiennent peut-être au classeur actif et non forcément celui qui
contient la macro)


"Caroline L." a écrit dans le message de news:

Bonjour à tous !

J'ai une macro qui fait une série d'actions (enlever de la couleur,
afficher
certaines lignes et colonnes, imprimer, remettre la couleur, masquer
certaines lignes et colonnes). Cette macro fonctionne très bien
lorsque




je
sélectionne une seule feuille à la fois. Par contre, si je
sélectionne




3
feuilles par exemple, tout est correct sur une feuille mais pas sur
les




autres (les actions de la macro ne fonctionnent pas sur toutes les
feuilles).
Y a t-il une certaine ligne de code à insérer au début de la macro
qui




dirait : Fait la macro de A à Z sur chaque feuille.

Merci à l'avance pour vos idées

Caroline




















1 2