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,
 variable1:variable2)
variable1:variable2) 
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 Sum
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