|
|
|
|
Bonjour à tous,
je n'ai pas pu tout écrire dans le titre de ce topic car je n'avais pas assez de place mais je vous rassure le problème est plus corsé que ça ! je m'explique :
j'ai un fichier excel dans lequel j'ai un tableau (feuille1) qui retrace les heures totales de 3 personnes travallant sur un projet.
J'aimerai faire des mises à jour de ce total au fur et à mesure de l'avancement de ce projet, c'est à dire tous les 2 ou 3 jours à peu pres. Par ailleurs il faut savoir que ce projet va durer une quarantaine de jours.
Une solution envisagée est de faire un tableau (similaire au premier tableau dans la feuille1) dans une nouvelle feuille pour chaque mise à jour. En gros c'est pour avoir une vue assez détaillée de l'avancement des travaux presque au jour le jour. Mais ce procédé va me contraindre à créer beaucoup de feuilles, et le nombre définitif de ces feuilles n'est pas connu avant la fin du projet.
Pour faire ce fameux total je dois donc additionner les heures de travail indépendamment pour ces 3 employés qui se trouvent sur les feuilles des mises à jour.
Je sais faire une addition d'apres plusieurs feuilles mais dans le cas ou le nombre de feuille est limité et connu, ce qui n'est pas le cas ici.
Je vous remercis d'avance pour avoir lu ce message et pour votre aide futur.
P.S:je n'aurais accès à ce forum que depuis mon poste de travail, donc pas avant 9h demain.
encore merci et bonne soirée à tous
Configuration: Windows XP Firefox 2.0.0.2
Bonjour,
=INDIRECT("NON" & LIGNE() & "!A1")
Ceci donne le sous-total de la feuille ayant le numéro de la ligne en cours. Si la feuille n'existe pas, le résultat est "#REF!" mais il suffit de revalider à la création de la feuille. Ensuite, dans une case voulu on fait la somme de ces valeurs, en évitant les #REF! par une condition : =SOMME.SI(A:A;">0") J'ai testé en faisant une somme sur 15 feuilles dont seulement 8 créées. |
Je m'explique :
|
Ok j'avais compris à peu pres
|
Oui tu peux faire ça par macro bien sûr.
Private Sub nom_bouton_Click()
Dim somme As Variant
Dim i As Integer
somme = 0
For i = 1 To ThisWorkbook.Worksheets.Count
somme = somme + Worksheets(i).Range("B3")
Next
Range(case_somme) = somme
End Sub
Avec : - nom_feuil_somme : Le nom de la feuille sur laquelle tu affiches cette somme (avec le bouton) ; - case_somme : Le nom de la case dans laquelle tu mets la somme (exemple : "A1"). Places ta feuille pour la somme en dernier, dans ce cas la la boucle est : For i = 1 To ThisWorkbook.Worksheets.Count-1 Ou places ta feuille pour la somme en premier, dans ce cas la la boucle est : For i = 2 To ThisWorkbook.Worksheets.Count De toute manière, s'il n'y a rien en B3 sur cette feuille, ça ajoutera 0 :) Voilà en macro ! |