Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

somme de plages avec vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

alexane

XLDnaute Occasionnel
Bonjour à tous
Je cherche à faire une macro qui me réalise une consolidation par somme
J'ai 6 feuilles (01 à 06) avec la même structure de tableau, même ref de cellules, même taille
Sur une feuille récapitulatif, je souhaite obtenir la somme des cellules C4 des 6 premières feuilles puis la somme des cellules C5 des 6 premières feuilles ex..

J'ai bien un code qui marche mais il ne me convient pas car je souhaite prévoir les cas où les tableaux varient en taille
En fait j'aimerais pouvoir remplacer mon :
Cells(i, j).Value = "=sum('01:06'!R" & i & "C" & j & ")"
par quelque chose du genre :
Cells(i,j).value = application.sum(sheets(1):sheets(6).cells(i,j))
mais qui ne génèrerait pas de bog
Ci joint un fichier exemple
 

Pièces jointes

Re : somme de plages avec vba

Salut,

Je n'ai pas bien compri si le probleme est d'avoir des formules dans la recap ou pas...

Il suffit de ne pas fixer le numero de ligne et de colonne dans la formule vu que les tableaux
sont strictement identiques au niveau de leur structure.
Tu peux utiliser ce code:
Code:
    With Sheets("recapitulatif")
        .Range(.Range("C4"), .Cells(.Range("B65536").End(xlUp).Row, .Range("IV3").End(xlToLeft).Column)).FormulaR1C1 = "=SUM('01:06'!RC)"
    End With
 
Re : somme de plages avec vba

Donc les tableaus ne sont pas identiques (contrairement a ce que tu disais dans le post initial... et je suppose de ce fait que la liste de nom pourra etre
differente d'un tableau a l'autre (sous entendu le meme nom pas toujours au meme endroit...)

C'est surement faisable en formule mais ca risque d'etre complique (en tout cas pour moi 😀).

Par macro c'est bien evidemment possible aussi mais dans ce cas en mettant les valeurs et pas les formules. Et il faudrait trouver le point de depart des
tableaux pour pouvoir ensuite faire les recherches qui vont bien en ligne et colonnes.
Par exemple, nommer l'equivalent de la cellule B3 de la feuille 01 dans toute les feuilles...
Apres 2 possibilites me viennent a l'esprit:

  1. faire toutes les recherches via la macro
  2. Generer une base temporaire, remplir le tableau recap avec des formules ce basant sur celle-ci (avec des SOMMEPROD), copier coller le tout en valeur apres calculet enfin supprimer la base temporaire

Voila quelques axes de reflexion....🙄
 
Re : somme de plages avec vba

Bonjour,

Par formule

Les noms sont en colonne B mais pas au même endroit.

=SOMMEPROD(SOMME.SI(INDIRECT("'"&TEXTE(LIGNE($1:$6);"00")&"'!B4:B20");$B4;DECALER(INDIRECT("'"&TEXTE(LIGNE($1:$6);"00")&"'!C4:C20");0;COLONNE()-3)))

On choisi le no d'onglet de début (B1) et de fin (B2)

=SOMMEPROD(SOMME.SI(INDIRECT("'"&TEXTE(LIGNE(INDIRECT($B$1&":"&$B$2));"00")&"'!B4:B20");$B4;
DECALER(INDIRECT("'"&TEXTE(LIGNE(INDIRECT($B$1&":"&$B$2));"00")&"'!C4:C20");0;COLONNE()-3)))

JB
 

Pièces jointes

Dernière édition:
Re : somme de plages avec vba

Bonjour a tous

Ma version en vba

A priori (mais a tester)
On peut ajouter des feuilles avec un nom quelconque
Le tableau peut etre n'importe ou dans la feuille (Seule contrainte : le mot tableau dans le coin haut gauche)
Les noms des commerciaux peuvent etre dans n'importe quel ordre
On peut en avoir en plus ou en moins
Les noms des produits peuvent etre dans n'importe quel ordre
On peut avoir des produits supplementaires ou en moins
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
657
Réponses
7
Affichages
987
Réponses
6
Affichages
847
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…