Formule Somme dans une Sélection en VBA

stephane.79

XLDnaute Nouveau
Bonjour à tous, le forum,

J'aimerai pouvoir réaliser la somme des valeurs dans une sélection.

Je ne sais pas comment transformer l'enregistrement automatique d'une somme (par exemple : Selection.FormulaR1C1 = "=SUM(R[-5]C:R[-1]C)" , pour réaliser une somme après une sélection du type :

For Each C In rngPlage.Cells
If C Like "Total *" Then
C.Select
Range(Selection, Selection.End(xlUp).Offset(0, 1)).Offset(0, 16).Select

'Faire ici la somme des cellules sélectionnées

End If
Next

D'avence merci pour votre aide.
Stephane.79
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Formule Somme dans une Sélection en VBA

Bonjour Stéphane, bonjour le forum,

Essaie comme ça :
Code:
For Each C In rngPlage.Cells
 
    If C Like "Total *" Then
        C.Select
        Range(Selection, Selection.End(xlUp).Offset(0, 1)).Offset(0, 16).Select
        Range("tacellule").Value = Application.WorksheetFunction.Sum(Selection)
        Exit For
    End If
Next
 

stephane.79

XLDnaute Nouveau
Re : Formule Somme dans une Sélection en VBA

Bonjour Robert, bonjour le forum,

Merci pour ta réponse.

Le problème c'est que le résultat de la somme n'est pas que dans 1 cellule.
Je souhaiterais faire la même chose qu'avec le petit symbole Sygma : la somme se fait en bas de la sélection.

Je joins un petit fichier exemple avec le bout de code pour la sélection.

D'avance merci.
Stéphane.79
 

Pièces jointes

  • Test _Somme.zip
    8.5 KB · Affichages: 83

Robert

XLDnaute Barbatruc
Repose en paix
Re : Formule Somme dans une Sélection en VBA

Bonsoir Stéphane, bonsoir le forum,

Dans ce cas je verrai ça comme ça plutôt :

Code:
Sub Test_Somme()
Dim rngPlage As Range
Dim C As Range
Dim der As Long 'déclare la variable der
 
Set rngPlage = Range(Range("A1"), Range("A65000").End(xlUp))
 
For Each C In rngPlage.Cells
 
    If C Like "Total *" Then
        C.Select
        'place les formules de somme
        C.Offset(0, 16).Formula = "=sum(Q" & der + 1 & ":Q" & C.Row - 1 & ")"
        C.Offset(0, 17).Formula = "=sum(R" & der + 1 & ":R" & C.Row - 1 & ")"
        der = C.Row 'redéfinit la variable der
     End If
Next
End Sub
 

Discussions similaires

Réponses
5
Affichages
350

Statistiques des forums

Discussions
312 413
Messages
2 088 200
Membres
103 762
dernier inscrit
rouazali