faire un total de plusieurs feuilles excel

faire un total de plusieurs feuilles excel - VB/VBA/VBS - Programmation

Marsh Posté le 02-06-2008 à 18:17:57    

Bonjour,
 
Voilà mon soucis,
j'ai un fichier excel avec une centaine de feuilles qui representent chacunes une vente, comme faire par exemple si dans ces 100 feuilles la cellule G3 représente le prix de vente et que je voudrai faire l'adittion des 100 cellules G3 pour les regrouper dans une cellule d'une feuille nomméeTOTAUX?
et comment faire pour que si j'ajoute une autre feuille de vente la formule suive ?
Merci,allez y doucement je suis au niveau débutant.


Message édité par fatjimo le 02-06-2008 à 18:28:27

---------------
http://forum.hardware.fr/hfr/Achat [...] 3987_1.htm
Reply

Marsh Posté le 02-06-2008 à 18:17:57   

Reply

Marsh Posté le 02-06-2008 à 20:09:00    

Salut, sous forme de fonction personnalisée,restera à voir la réactivité avec 100 feuilles ou +
 
Création Fonction Personnalisée
-------------------------------
Le code est à placer dans un Module standard  
[Alt+F11] Menu Insertion / Module  
 
Ensuite sous Excel  
 Sélectionner la cellule de destination  
 Menu Insertion / Fonction / Catégorie : Personnalisées  
 Sélectionner la Fonction
 l'assistant apparait etc.  
 
Sinon par exemple sur la feuille TOTAUX : A1=Cumul()
 


Option Explicit
 
Public Function Cumul() As Double
Dim Ws As Worksheet
Dim Total As Double
    Application.Volatile
    Total = 0
    For Each Ws In ThisWorkbook.Worksheets
        If Ws.Name <> "TOTAUX" Then
            If IsNumeric(Ws.Cells(3, 7)) Then
                Total = Total + CDbl(Ws.Cells(3, 7))
            End If
        End If
    Next Ws
    Cumul = Total
End Function


Message édité par kiki29 le 02-06-2008 à 20:46:25
Reply

Marsh Posté le 02-06-2008 à 21:17:55    

merci Kiki,
ca me donne le tourni ...
pas plus simple surtout si c'est toujours la même cellule ?


---------------
http://forum.hardware.fr/hfr/Achat [...] 3987_1.htm
Reply

Marsh Posté le 02-06-2008 à 23:45:44    

Salut, tu as un nombre indéterminé de feuilles succeptible de croitre/décroitre,donc il faut les balayer toutes (sauf celle se nommant "TOTAUX" ),donc pas le choix...
 
Sinon supprimer Application.Volatile et affecter un Bouton qui ne lance ce calcul que sur clic de l'utilisateur.


Sub Bouton1_QuandClic()
    Sheets("TOTAUX" ).Range("A1" ) = Cumul
End Sub


 
Une autre solution, si tu n'as pas plus de 256 cellules contenant des données ( sinon Excel 2007 : 16384 colonnes ) c'est de repenser ton modèle en mettant toutes tes infos sur une ligne / feuille 1 info par colonne, le tout dans une seule feuille de récap appelée ici TOTAUX, en n'utilisant surtout pas les liaisons externes qui causent d'autres pbs.
Un dossier Archives qui lui contient toutes les feuilles individuelles et une macro permettant de lire
les données et de mettre à jour la feuille TOTAUX.ceci permettant de loger les infos de + de 65000 feuilles ce qui ne sera pas le cas actuel (la limite du nb de feuilles est liée à la mémoire disponible )
Sans compter les pbs annexes de ton modèle actuel : temps de sauvegarde, taille du classeur ,crash toujours possible et pertes de données


Message édité par kiki29 le 03-06-2008 à 00:21:17
Reply

Marsh Posté le 04-06-2008 à 11:29:53    

salut,
j'ai fait plus simple...,façon de dire !
 
='1'!G3+'2'!G3+'3'!G3+'4'!G3+'5'!G3+'6'!G3+'7'!G3+'8'!G3+'9'!G3+'10'!G3+'11'!G3+'12'!G3+'13'!G3+'14'!G3+'15'!G3+'16'!G3+'17'!G3+'18'!G3+'19'!G3+'20'!G3+'21'!G3+'22'!G3+'23'!G3+'24'!G3+'25'!G3+'26'!G3+'27'!G3+'28'!G3+'29'!G3+'30'!G3 etc....


---------------
http://forum.hardware.fr/hfr/Achat [...] 3987_1.htm
Reply

Marsh Posté le 04-06-2008 à 19:08:07    

bonsoir,
si la première feuille s'appelle "FeuilDeb" et la dernière "FeuilFin", Dans la "FeuilTotal" (qui devra se trouver avant la "FeuilDeb" ou après la "FeuilFin" ) mettre :
=SOMME(FeuilDeb:FeuilFin!G3)
A+

Reply

Marsh Posté le 04-06-2008 à 20:47:19    

merci,j'ai fait mon bordel mais c bon a savoir


---------------
http://forum.hardware.fr/hfr/Achat [...] 3987_1.htm
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed