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 !!!!
A voir également:
- Somme d'une plage de cellules contiguës
- Somme de plusieurs cellules excel - Guide
- Somme si couleur - Guide
- Verrouiller cellules excel - Guide
- Image de manchots sur une image de plage - Forum Musique / Radio / Clip
- Somme en anglais excel - Guide
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+
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) )
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) )