Somme d'une plage de cellules contiguës
Résolu
skyscraper
Messages postés
7
Statut
Membre
-
skyscraper Messages postés 7 Statut Membre -
skyscraper Messages postés 7 Statut Membre -
Bonjour,
Il existe une formule Excel très intéressante pour faire une somme de plusieurs cellules contiguës :
=Somme(Decaler(réf;lignes;colonnes;hauteur;largeur))
par exemple :
=SOMME(DECALER(G175;;;;3))
et là vous venez de faire la somme des cellules G175 + H175 + I175
Bien sûr n'importe quelle variable peut-être utilisée et c'est vraiment très pratique.
Je voudrais faire la même chose mais en VBA, mais impossible de la transcrire.
Je connais les fonctions:
- WorksheetFunction.Sum(Plage1,Plage2,........)
- Offset(rowOffset, columnOffset)
- Resize(RowsSize, ColumnsSize)
mais impossible de les associer !!!!
Il existe une formule Excel très intéressante pour faire une somme de plusieurs cellules contiguës :
=Somme(Decaler(réf;lignes;colonnes;hauteur;largeur))
par exemple :
=SOMME(DECALER(G175;;;;3))
et là vous venez de faire la somme des cellules G175 + H175 + I175
Bien sûr n'importe quelle variable peut-être utilisée et c'est vraiment très pratique.
Je voudrais faire la même chose mais en VBA, mais impossible de la transcrire.
Je connais les fonctions:
- WorksheetFunction.Sum(Plage1,Plage2,........)
- Offset(rowOffset, columnOffset)
- Resize(RowsSize, ColumnsSize)
mais impossible de les associer !!!!
3 réponses
-
Bonsoir, je ne suis pas bien fort en VBA, du coup quand je sèche sur un truc comme ça, je tente un enregistrement de macro, des fois ça marche.
-
Bonsoir,
C'est justement sur quoi je cale.
J'y ai passé toute l'AM à tester dans tous les sens, enfin je crois avoir testé toutes les solutions,
mais j'en ai sûrement oublié une, la bonne.
par exemple j'ai testé :
WorksheetFunction.Sum(WSMois.Range(WSMois.Cells(175, 7), WSMois.Cells(175, 7).Offset(0, 0).Resize(0, 3)))
et j'ai en réponse :
<Erreur définie par l'application ou par l'objet>
Ai-je raison de penser que s'il est possible d'écrire une équation dans la formule d'une cellule, cette équation est aussi possible en VBA ?
Ce que je constate c'est que la fonction WorksheetFunction.Sum(Plage1,Plage2,........) n'accepte que des arguments correspondant à une seule cellule alors qu'il faut pouvoir incorporer une plage de cellule.
Connaissez-vous une autre fonction que "SUM" permettant de sommer plusieurs cellules ?
A+ -
Je viens de résoudre mon problème ...
WorksheetFunction.Sum(WSMois.Range(Pointeur).Offset(0, 0).Resize(1, 3))
Il ne faut simplement pas redimensionner avec 0, c'est 1 au minimum ou rien
WorksheetFunction.Sum(WSMois.Range(Pointeur).Offset(0, 0).Resize(, 3))
et là pas besoin de boucle vous avez la somme de 3 cellules contiguës, que l'on peut décaler avec Offset à volonté et sommer le nombre de lignes et de colonnes que vous voulez.
WorksheetFunction.Sum(Pointeur.Offset(rowOffset, columnOffset) .Resize(RowsSize, ColumnsSize) )