Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3073 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  sommer des blocs dan un bloc

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

sommer des blocs dan un bloc

n°2060005
zcoquelico​t
Posté le 28-02-2011 à 12:01:51  profilanswer
 

Bonjour,  
 
Je ne suis pas très à l'aise avec VBA.
Je cherche à sommer des tableaux excel entre eux.
Concrètement (et en simplifiant) j'ai un tableau sur feuille 1, par exemple de A1 à D6.
Et je veux que A1 soit la somme des cases A1 des autres feuilles du workbook.
Et que A2 soit la somme des cases A1 des autres feuilles du workbook.
Et ainsi de suite jusqu'à D6.
J'y arrive avec deux boucles encastrées "pour chaque cellule du range considéré" faire "pour chaque feuille du fichier excel" la somme... Ca marche mais c'est très long et poas forcément très propre comme code.
Je me demandais s'il existait quelque chose pour traiter ce genre de cas ? avec des formulaR1C1 ou d'autres astuces dans le genre...
 
Si vous pouviez me donner un petit coup de pouce, ce serait vraiment génial.
 
Merci d'avance.

mood
Publicité
Posté le 28-02-2011 à 12:01:51  profilanswer
 

n°2060586
SuppotDeSa​Tante
Aka dje69r
Posté le 02-03-2011 à 10:12:55  profilanswer
 

Hello
 
Pour moi ce qu'il y a de plus simple c'est un truc comme ca :

Code :
  1. Function zcoquelicot(Cell As Range, OngletCalc)
  2. 'Cell la cellule a sommer, OngletCalc l'onglet _
  3. sur lequel on va sommer, histoire de l'exclure des calculs
  4. 'Pour que ca se recalcule si tu changes les valeurs des autres onglets
  5.     Application.Volatile
  6. 'on compte le nb d'onglet du classeur en cours
  7.     NbSheet = ActiveWorkbook.Worksheets.Count
  8. 'on passe sur chaque onglet et on somme les valeurs de Cell. _
  9. A toi de rajouter des tests au cas où tu ai du texte etc.
  10.     For x = 1 To NbSheet
  11. 'Si l'onglet est different de celui sur lequel doit apparaitre la somme
  12.         If ActiveWorkbook.Worksheets(x).Name <> OngletCalc Then
  13. 'on somme
  14.             Som = Som + ActiveWorkbook.Worksheets(x).Range(Cell.Address)
  15.         End If
  16.     Next
  17.    
  18.     zcoquelicot = Som
  19. End Function


 
Sur ta feuille où tu veux ton calcul des A1 tu saisis :
=zcoquelicot (A1;"Nom_De_Ta_Feuille_Ou_Tu_Veux_Ton_Calcul" )
 
Je ne passe pas par un ActiveSheet car si tu changes le A1 d'une feuille, le Volatile refait passer par la fonction, et l'ActiveSheet se retrouve etre l'autre onglet.


Message édité par SuppotDeSaTante le 02-03-2011 à 10:14:22

---------------
Soyez malin, louez entre voisins !
n°2060649
zcoquelico​t
Posté le 02-03-2011 à 13:37:52  profilanswer
 

Bonjour dje69r
 
Merci de m'avoir répondu.
Ta réponse revient un peu au même que ma solution : dans le fonction on boucle sur les onglets et il faut appeler cette fonction en bouclant sur les cellules du range.
 
Il se trouve que finalement je n'ai pas besoin de cette manip donc ce n'est pas très important, à part pour satisfaire ma curiosité...

n°2060652
SuppotDeSa​Tante
Aka dje69r
Posté le 02-03-2011 à 13:54:13  profilanswer
 

Tu ne boucles pas sur le range puisque c'est un parametre de la fonction.
Une copie incrementielle et pas besoin de boucle.
Quant a passer par des Formula, le jour ou tu ajoutes un onglet c'est dead.
 
Ou alors je ne pige pas ou tu veux en venir...


---------------
Soyez malin, louez entre voisins !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  sommer des blocs dan un bloc

 

Sujets relatifs
blocs avec largeur "ajustable" ?[VBS] Supprimer un bloc de lignes
question affichage blocsfonction enregistrer ( appli bloc note )
Creer une macro pour sommer plusieurs cellules de plusieurs feuillesSupprimer un bloc avec VBA
Supprimer un bloc avec VBAfaire une recherchev et sommer les colonnes sur un fichier excel avec
Bloc qui descend légérement [CSS][Resolu] Probleme image en bordure de bloc !
Plus de sujets relatifs à : sommer des blocs dan un bloc


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR