Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

formules repetees sur plusieurs feuilles

10 réponses
Avatar
alainL
Bonjour,
J'ai une douzaine de feuilles sur le même format.
Je fais le total des valeurs de col G, le total des valeurs de col H, la
col I contient le resultat d'un test (si (G=1 et h)1);1;0); et là aussi
je fais la somme en bas. Ca marche... sur une feuille.
Mais je voudrais obtenir cela pour tout le classeur sans avoir à le
répéter sur chq feuille pour totaliser ensuite.
Merci pour votre aide.
--
Alain L

Mon village en Haute Soule : http://autourdalos.fr
Carnet de voyages: http://jarailet.club.fr/Randobal

10 réponses

Avatar
JPMonnier
Bonjour,
Tu copies tes formules de somme et de si
Ensuite, tu sélectionnes la feuille suivante(x) puis avec la touche shift,
tu sélectionnes la dernière feuille, (tes feuille se retrouvent groupées)
tu place ton curseur en feuille(x), sur la cellule en même position que
don départ de copie de la première feuille
tu colles
tu obtiens ainsi des formules sur toutes les feuilles sélectionnées
--
Cordialement

"alainL" a écrit dans le message de
news:49392c66$0$28672$
Bonjour,
J'ai une douzaine de feuilles sur le même format.
Je fais le total des valeurs de col G, le total des valeurs de col H, la
col I contient le resultat d'un test (si (G=1 et h)1);1;0); et là aussi je
fais la somme en bas. Ca marche... sur une feuille.
Mais je voudrais obtenir cela pour tout le classeur sans avoir à le
répéter sur chq feuille pour totaliser ensuite.
Merci pour votre aide.
--
Alain L

Mon village en Haute Soule : http://autourdalos.fr
Carnet de voyages: http://jarailet.club.fr/Randobal


Avatar
FFO
Salut alain

Une fois ta 1° feuille ("Feuil1")réalisée
exécutes ce bout de code :

For i = 1 To Sheets.Count
If Sheets(i).Name <> ("Feuil1") Then
Sheets("Feuil1").Cells.Copy Sheets(i).Range("A1")
End If
Next


Celà devrait faire
Dis moi !!!
Avatar
alainL
JPMonnier a écrit :
Bonjour,
Tu copies tes formules de somme et de si
Ensuite, tu sélectionnes la feuille suivante(x) puis avec la touche
shift, tu sélectionnes la dernière feuille, (tes feuille se retrouvent
groupées)
tu place ton curseur en feuille(x), sur la cellule en même position
que don départ de copie de la première feuille
tu colles
tu obtiens ainsi des formules sur toutes les feuilles sélectionnées



Merci mais il y a un os ?
Je copie une formule et je suis ta démarche... puis une autre formule
and so on ...
Mais les feuilles n'ont pas le même nombre de lignes et la recopie vers
le bas du = si(et(b1=1;c1=1);1;0)s'effectue sur le même nb de lignes que
ds feuil 1. Je n'ai pas verifié pour les sommes en bas de colonnes...
mais je crois que c'est pareil.


--
Alain L

Mon village en Haute Soule : http://autourdalos.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
Avatar
alainL
FFO a écrit :
Salut alain

Une fois ta 1° feuille ("Feuil1")réalisée
exécutes ce bout de code :

For i = 1 To Sheets.Count
If Sheets(i).Name <> ("Feuil1") Then
Sheets("Feuil1").Cells.Copy Sheets(i).Range("A1")
End If
Next


Celà devrait faire
Dis moi !!!



Merci mais je ne suis pas très familier du code !
Je l'ai copié dans la fenetre "general" de ThisWorkbook... et j'ai lancé...

For i = 1 To Sheets.Count ---->
"instruction incorrecte ds une procedure"

--
Alain L

Mon village en Haute Soule : http://autourdalos.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
Avatar
FFO
Rebonjour Alain

Tu mets ce code dans un module ordinaire que tu peux créer avec
l'enregistreur de macro et tu l'exécutes
Donnes moi des nouvelles !!!!
Avatar
alainL
FFO a écrit :
Rebonjour Alain

Tu mets ce code dans un module ordinaire que tu peux créer avec
l'enregistreur de macro et tu l'exécutes
Donnes moi des nouvelles !!!!



J'ai encore le meme message d'erreur:
For i = 1 To Sheets.Count ---->
"instruction incorrecte ds une procedure"

--
Alain L

Mon village en Haute Soule : http://autourdalos.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
Avatar
FFO
Rebonjour Alain

Par ce site : http://www.cijoint.fr/index.php

Fais moi parvenir ton document avec ma macro qui Bug

Communiques moi le lien pour le récupérer

Merci
Avatar
alainL
FFO a écrit :
Rebonjour Alain

Par ce site : http://www.cijoint.fr/index.php

Fais moi parvenir ton document avec ma macro qui Bug

Communiques moi le lien pour le récupérer

Merci




Merci à toi.
Voici une partie du classeur (il y a, normalement, une vingtaine de
feuilles pas forcément entières)

http://cjoint.com/?mmlcAp2uB6

Je souhaiterais reporter les formules de la feuille 1 sur chacune des
autres (form qui détermine la valeur 1 ou 0 dans les cell de I, et form
qui totalisent les valeurs des cell dans G et H.)
Pour finir, obtenir le total de ttes les feuilles en G et H.

Avec ce classeur en l'état, j'obtiens "l'indice n'appartient pas à la
sélection"

Merci pour ton aide.

--
Alain L

Mon village en Haute Soule : http://autourdalos.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
Avatar
FFO
Rebonjour Alain

Tu n'as pas respectée ma condition préalable :

"Une fois ta 1° feuille ("Feuil1")réalisée"

Cette feuille dans ton fichier est inexistante donc non réalisée d'où ton
bug !!!!

J'ai profité de ton exemple pour peaufiner le code car en l'état il ramène
dans toutes les feuilles les formules de la feuille Modèle mais aussi si il
n' y a pas de formule la valeur pour toutes les cellules qui en possédent
C'est un peux génant si tu ne souhaites ramener que les formules
Donc j'ai modifié le code ainsi partant de l'hypothèse où seules la colonne
I et la ligne 18 sont concernèes :

For i = 1 To Sheets.Count
If Sheets(i).Name <> ("Modèle") Then
Sheets("Modèle").Columns("I:I").Copy
Sheets(i).Columns("I:I").PasteSpecial Paste:=xlPasteFormulas
Sheets("Modèle").Rows(18).Copy
Sheets(i).Rows(18).PasteSpecial Paste:=xlPasteFormulas
End If
Next
Application.CutCopyMode = False

La feuille de référence est appelé "Modèle"
Si les colonnes ou les lignes devaient évoluer il faudrait adapter les
lignes de ce code :

Sheets("Modèle").Columns("I:I").Copy
Sheets(i).Columns("I:I").PasteSpecial Paste:=xlPasteFormulas
Sheets("Modèle").Rows(18).Copy
Sheets(i).Rows(18).PasteSpecial Paste:=xlPasteFormulas


Sur ce lien ton document adaté ainsi

http://www.cijoint.fr/cjlink.php?file=cj200812/cijLi7qHLQ.xls

J'ai rajouté les feuilles "Feuil4" et Feuil5" vides de toutes données
Actives ta macro elles seront enrichies des formules colonne I et ligne 18
conformément à la feuille Modèle

Fais des essais et dis moi !!!!
Avatar
alainL
FFO a écrit :
Rebonjour Alain

Tu n'as pas respectée ma condition préalable :

"Une fois ta 1° feuille ("Feuil1")réalisée"

Cette feuille dans ton fichier est inexistante donc non réalisée d'où ton
bug !!!!

J'ai profité de ton exemple pour peaufiner le code car en l'état il ramène
dans toutes les feuilles les formules de la feuille Modèle mais aussi si il
n' y a pas de formule la valeur pour toutes les cellules qui en possédent
C'est un peux génant si tu ne souhaites ramener que les formules
Donc j'ai modifié le code ainsi partant de l'hypothèse où seules la colonne
I et la ligne 18 sont concernèes :

For i = 1 To Sheets.Count
If Sheets(i).Name <> ("Modèle") Then
Sheets("Modèle").Columns("I:I").Copy
Sheets(i).Columns("I:I").PasteSpecial Paste:=xlPasteFormulas
Sheets("Modèle").Rows(18).Copy
Sheets(i).Rows(18).PasteSpecial Paste:=xlPasteFormulas
End If
Next
Application.CutCopyMode = False

La feuille de référence est appelé "Modèle"
Si les colonnes ou les lignes devaient évoluer il faudrait adapter les
lignes de ce code :

Sheets("Modèle").Columns("I:I").Copy
Sheets(i).Columns("I:I").PasteSpecial Paste:=xlPasteFormulas
Sheets("Modèle").Rows(18).Copy
Sheets(i).Rows(18).PasteSpecial Paste:=xlPasteFormulas


Sur ce lien ton document adaté ainsi

http://www.cijoint.fr/cjlink.php?file=cj200812/cijLi7qHLQ.xls

J'ai rajouté les feuilles "Feuil4" et Feuil5" vides de toutes données
Actives ta macro elles seront enrichies des formules colonne I et ligne 18
conformément à la feuille Modèle

Fais des essais et dis moi !!!!



Super ! J'avais effectivement cafouillé en recopiant mes feuilles.
Je vais essayer d'ajouter à ce code la détection du nombre de lignes
utilisées sur chaque feuille afin de le mettre en indice de
Sheets(i).Rows(nblign).PasteSpecial Paste:=xlPasteFormulas

Peut-être à bientôt :-))
et merci encore.
--
Alain L

Mon village en Haute Soule : http://autourdalos.fr
Carnet de voyages: http://jarailet.club.fr/Randobal