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
Bonjour,JYLL à dit:Bonjour Flash et le Forum,
Voici une macro qui devrait répondre à ton besoin :
Bon test.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
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 "$"
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
JYLL à dit:Re Bonjour Flash et le Forum,
Salut Jean-Pierre, Pierre Jean,Porcinet
La Macro précédente adaptée à ton besoin :
Bon test.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