Macro pour calcul de pourcenatge par colonne

Flash

XLDnaute Nouveau
Bonjour,

je suis débutante en VBA et je souhaite faire des calculs de pourcentage par colonne dans des fichiers excel. J'ai plusieurs fichiers qui ont des colonnes nommés avec des 1, 2,3,4 et je dois calculer le pourcentage de 1, 2, 3 et 4.
Merci pour votre aide
 

JYLL

Nous a quitté
Repose en paix
Re : Macro pour calcul de pourcenatge par colonne

Bonjour Flash et le Forum,

Voici une macro qui devrait répondre à ton besoin :

Code:
Sub pourcentage()
  For I = 1 To Range("A65536").End(xlUp).Row
    somme = 0
    For J = 1 To 4
      somme = somme + Cells(I, J)
    Next J
    For J = 1 To 4
      Cells(I, J + 4) = Format(Cells(I, J) / somme, "Percent")
    Next J
  Next I
End Sub
Bon test.
 

porcinet82

XLDnaute Barbatruc
Re : Macro pour calcul de pourcenatge par colonne

Salut,

Regarde le fichier joint, je t'ai fais un petit exemple avec du code assez simple pour que tu vois ce qu'il est possible de faire, bien qu'une formule pourrait faire aussi bien et beaucoup plus simplement.

@+

Edition : Et bien je vois que l'ami Jean-Yves m'a devancé.
 

Pièces jointes

  • Flash.xls
    21.5 KB · Affichages: 103
  • Flash.xls
    21.5 KB · Affichages: 103
  • Flash.xls
    21.5 KB · Affichages: 100

Flash

XLDnaute Nouveau
Re : Macro pour calcul de pourcenatge par colonne

JYLL à dit:
Bonjour Flash et le Forum,

Voici une macro qui devrait répondre à ton besoin :

Code:
Sub pourcentage()
  For I = 1 To Range("A65536").End(xlUp).Row
    somme = 0
    For J = 1 To 4
      somme = somme + Cells(I, J)
    Next J
    For J = 1 To 4
      Cells(I, J + 4) = Format(Cells(I, J) / somme, "Percent")
    Next J
  Next I
End Sub
Bon test.
Bonjour,

merci pour ton aide mais je pense que ma demande n'était pas claire, je souhaite calculer les pourcentages par colonnes. Par exemples
1
1
3
4
1
2
2
1
1
4
% 1 =50%
% 2=....
 

JYLL

Nous a quitté
Repose en paix
Re : Macro pour calcul de pourcenatge par colonne

Re Bonjour Flash et le Forum,

La question est-elle celle ci ?:

Tu fais la somme d'une colonne et tu veux savoir le pourcentage de chaque ligne de la colonne ?

J'ai fais la somme de chaque ligne et j'ai calculé le pourcentage de chaque élément de la ligne par rapport à la somme

Au plaisir de te lire.
 

jeanpierre

Nous a quitté
Repose en paix
Re : Macro pour calcul de pourcenatge par colonne

Bonjour Flash JYLL, Romain, le forum,

Ce que j'ai compris : =NB.SI($A$1:$A$10;1)/NB($A$1:$A$10) pour avoir le poucentage de 1

Pareil pour le 2 : =NB.SI($A$1:$A$10;2)/NB($A$1:$A$10)

Etc....

Bonne fin de journée,

Jean-Pierre

Edit : Réctif pour bloquer les cellules et pouvoir étirer vers le bas, les "$"
 
Dernière édition:

Flash

XLDnaute Nouveau
Re : Macro pour calcul de pourcenatge par colonne

Oui c'et ça que je fais actuellement mais comme j'ai 70 fichiers et 15 colonnes, j'aurai souhaité automatisé
Merci

jeanpierre à dit:
Bonjour Flash JYLL, Romain, le forum,

Ce que j'ai compris : =NB.SI($A$1:$A$10;1)/NB($A$1:$A$10) pour avoir le poucentage de 1

Pareil pour le 2 : =NB.SI($A$1:$A$10;2)/NB($A$1:$A$10)

Etc....

Bonne fin de journée,

Jean-Pierre

Edit : Réctif pour bloquer les cellules et pouvoir étirer vers le bas, les "$"
 

pierrejean

XLDnaute Barbatruc
Re : Macro pour calcul de pourcenatge par colonne

bonjour a tous

un exemple de ce qu'il est possible de faire

mais pour aller plus loin il serait tout de même bon d'avoir un fichier exemple (sans données confidentielles)
 

Pièces jointes

  • pcent.xls
    29.5 KB · Affichages: 67

JYLL

Nous a quitté
Repose en paix
Re : Macro pour calcul de pourcenatge par colonne

Re Bonjour Flash et le Forum,
Salut Jean-Pierre, Pierre Jean,Porcinet:) ;)

La Macro précédente adaptée à ton besoin :
Code:
Sub Calcul_Pourcentage()
Dim Tablo(100), Nb_Val As Integer, Ligne As Integer, I As Integer, J As Integer
    Nb_Val = Range("A65536").End(xlUp).Row
      For I = 1 To Range("A65536").End(xlUp).Row
            Tablo(Cells(I, 1)) = Tablo(Cells(I, 1)) + 1
        Next I
        Ligne = Range("A65536").End(xlUp).Row + 3
        For J = 1 To 100
        If Tablo(J) <> 0 Then
            Cells(Ligne, 1) = J
            Cells(Ligne, 2) = Format(Tablo(J) / Nb_Val, "Percent")
            Ligne = Ligne + 1
       End If
       Next J
End Sub
Bon test.
 

Flash

XLDnaute Nouveau
Re : Macro pour calcul de pourcenatge par colonne

Bonjour JYLL,

je teste ta macro et je n'ai aucun résultat et pas de message d'erreur non plus.

JYLL à dit:
Re Bonjour Flash et le Forum,
Salut Jean-Pierre, Pierre Jean,Porcinet:) ;)

La Macro précédente adaptée à ton besoin :
Code:
Sub Calcul_Pourcentage()
Dim Tablo(100), Nb_Val As Integer, Ligne As Integer, I As Integer, J As Integer
    Nb_Val = Range("A65536").End(xlUp).Row
      For I = 1 To Range("A65536").End(xlUp).Row
            Tablo(Cells(I, 1)) = Tablo(Cells(I, 1)) + 1
        Next I
        Ligne = Range("A65536").End(xlUp).Row + 3
        For J = 1 To 100
        If Tablo(J) <> 0 Then
            Cells(Ligne, 1) = J
            Cells(Ligne, 2) = Format(Tablo(J) / Nb_Val, "Percent")
            Ligne = Ligne + 1
       End If
       Next J
End Sub
Bon test.
 

Discussions similaires

Statistiques des forums

Discussions
312 226
Messages
2 086 414
Membres
103 204
dernier inscrit
alaa20dine01