OVH Cloud OVH Cloud

pourcentage sur sous totaux

4 réponses
Avatar
C15
Bonjour à tous et toutes,

J'ai un tableau sur lesquel je fais des sous-totaux (à chaque changement de
...Région...)

Pour chaque donnée saisie dans le tableau, je voudrais connaître combien
cela représente par rapport au sous-total auquel il est associé.

Exemple :
J'ai des ventes classées par région (Alsace, Normandie, Lorraine, Nord...)
Je fais un sous total qui me donne SommeAlsace, SommeNormandie...

Je voudrais connaïtre par exemple pour chaque vente en Alsace, ce qu'elle
représente (en %) par rapport au total Alsace, et ainsi de suite pour chaque
région.

Merci de votre aide

A+

C15

4 réponses

Avatar
jb
Solution Macro:

On affiche le % en colonne D

A B C D
1 Produit CA Région
2 Produit1 100 A 14,08%
3 Produit3 110 A 15,49%
4 Produit6 100 A 14,08%
5 710 Total A
6 Produit2 5 65 B 29,09%
7 Produit4 100 B 5,15%
8 Produit7 567 B 29,20%
9 1942 Total B

Sub essai()
lig = Range("c1").End(xlDown).Row
i = lig - 1
Do While i > 1
total = Cells(i, 2)
mrégion = Cells(i - 1, 3)
Do While Cells(i - 1, 3) = mrégion
Cells(i - 1, 4) = Cells(i - 1, 2) / total
Cells(i - 1, 4).NumberFormat = "0.00%"
i = i - 1
Loop
i = i - 1
Loop
End Sub

JB
Avatar
C15
Bonsoir Jb

Merci de cette réponse, mais cette fonction, comment je l'appelle pour
qu'elle s'exécute en colonne D ?

Merci de ton aide

A+

C15
"jb" a écrit dans le message de news:

Solution Macro:

On affiche le % en colonne D

A B C D
1 Produit CA Région
2 Produit1 100 A 14,08%
3 Produit3 110 A 15,49%
4 Produit6 100 A 14,08%
5 710 Total A
6 Produit2 5 65 B 29,09%
7 Produit4 100 B 5,15%
8 Produit7 567 B 29,20%
9 1942 Total B

Sub essai()
lig = Range("c1").End(xlDown).Row
i = lig - 1
Do While i > 1
total = Cells(i, 2)
mrégion = Cells(i - 1, 3)
Do While Cells(i - 1, 3) = mrégion
Cells(i - 1, 4) = Cells(i - 1, 2) / total
Cells(i - 1, 4).NumberFormat = "0.00%"
i = i - 1
Loop
i = i - 1
Loop
End Sub

JB
Avatar
jb
Bonsoir,

Ce n'est pas une fonction mais une procédure VBA qu'il faut placer
dans un module:

-Alt+F11 pour basculer en VBA
-Insertion/Module
-Copier/Coller du code

Pour exécuter, Outils/Macro/Macros/Exécuter

JB
Avatar
C15
Rebonsoir,

Merci de ces dernières précisions.

Bonne fin de week-end.

A+

C15
"jb" a écrit dans le message de news:

Bonsoir,

Ce n'est pas une fonction mais une procédure VBA qu'il faut placer
dans un module:

-Alt+F11 pour basculer en VBA
-Insertion/Module
-Copier/Coller du code

Pour exécuter, Outils/Macro/Macros/Exécuter

JB