Excel/VBA Somme d'une colonne dont on ne connait pas la longueur - VB/VBA/VBS - Programmation
Marsh Posté le 24-04-2004 à 20:04:52
Rebonjour,
J'ai trouvé la solution à mon probleme precedent, mais je pense que ce n'est pas la solution la plus adequate, donc si vous avez une meilleur idée...
Cependant j'ai un autre probleme. Avec le code ci dessous, mon but est donc de la calculer la somme des montants de toute la colonne F3.
Ensuite, dans la colonne G3, je souhaite quechaque valeur presente dans chaque cellule de la colonne F3 soit divisée par la somme des montants de F3 (bref pour obtenir le pourcentage)
Ca fonctionne sauf que je n'arrive pas à alimenter chaque cellule de G3. Seule la premiere cellule s'alimente.
Voici mon code, pourriez vous m'aider à trouver une solution pour ça fonctionne ?
Merci d'avance,
Gregory
----------------
Range("F3" ).Select
Line = 0
Do Until ActiveCell = ""
ActiveCell.Offset(1, 0).Select
Line = Line - 1
Loop
Selection.Interior.ColorIndex = 40
ActiveCell.Formula = "=SUM(R[" & Line & "]C:R[-1]C)"
TotalVar = ActiveCell
'***
Line2 = 0
Range("G3" ).Select
ActiveCell.FormulaR1C1 = "=RC[-1]/" & TotalVar
Do Until Line2 = Line
ActiveCell.Offset(1, 0).Select
Line2 = Line2 - 1
Loop
A B C D
1 5 9 0,25714286
2 4 8
3 3 7
4 2 6
5 1 5
35
Marsh Posté le 16-05-2004 à 08:02:51
Salut,
Tes explications ne sont pas très très claires mais voyons si j'ai bien tout compris...
Selon l'exemple que tu donnes,
A B C D
1 5 9 0,25714286
2 4 8
3 3 7
4 2 6
5 1 5
35
C1 = B1+B2
C2 = B1+B3
C3 = ...
--> j'en déduis que la cellule B1 (ou F3 dans ton fichier) sert de référence pour tes additions dans C (ou G) et 35 = somme de la colonne C (ou G)
D1 = 9/35 (ou C1/TotalVar soit 0,25714286)
--> et tu voudrais que D2 = 8/35 (C2/TotalVar), D3 = 7/35 (C3/TotalVar), D4 = ...
Si c'est bien çà, ce code devrait peut-être régler ton pb :
Sub TaMacro()
On Error GoTo err
Dim ligne As Long
Dim TotalVar As Long
Dim i As Long
Range("F3" ).Select
ligne = ActiveCell.Row - 1
Range("F3" ).End(xlDown).Select
ligne = Range("F3" ).End(xlDown).Row - ligne
Range("G3" ).Select
ActiveCell.FormulaR1C1 = "=RC[-1]+R[1]C[-1]"
For i = 1 To ligne
ActiveCell.Offset(1, 0).Range("A1" ).Select
ActiveCell.FormulaR1C1 = "=R[-" & i & "]C[-1]+R[1]C[-1]"
Next i
With ActiveCell
.Offset(1, 0).Range("A1" ).Select
.FormulaR1C1 = "=SUM(R[-" & ligne & "]C:R[-1]C)"
.Interior.ColorIndex = 40
TotalVar = .Value
End With
Range("H3" ).Select
ActiveCell.FormulaR1C1 = "=RC[-1]/" & TotalVar
For i = 1 To ligne - 1
ActiveCell.Offset(i, 0).FormulaR1C1 = "=RC[-1]/" & TotalVar
Next i
Exit Sub
err:
MsgBox "La colonne F est vide !!", vbCritical
End Sub
A plus...
Marsh Posté le 24-04-2004 à 17:50:38
Bonjour,
J'essaie de calculer la somme de tous les montants d'une colonne (Celle ne contien jamais 2x le même nombre de chiffre). Bref imposible de faire Sum("F3:F50" ) par exemple.
Pourriez vous m'aider à modifier le code suivant s'il vou plait ? Pour l'instant il va se placer sur la derniere cellule de la colonen F3, mais je ne sais pas comment faire pour qu'il me fasse la somme de tous les montants de cette cellule...
Peut etre en fixant comme variable1 la cellule F3 et comme variable2 la cellule juste au dessus de la derniere cellule, puis de faire la somme des montants entre ces deux cellule du style Sumvariable1:variable2)
MErcid 'avance pour votre aide,
Gregory
Sub Macro()
Range("F3" ).Select
Do Until ActiveCell = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Formula = Ici il me faudrait la somme de toute la colonne F3....
End Sub