[Excel]Prendre en compte plusieurs feuilles..
Résolu
spass_pa
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
Sir_DEC Messages postés 143 Date d'inscription Statut Membre Dernière intervention -
Sir_DEC Messages postés 143 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- [Excel]Prendre en compte plusieurs feuilles..
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Créer un compte google - Guide
- Regrouper plusieurs feuilles excel en une seule - Guide
- Mise en forme conditionnelle excel - Guide
9 réponses
Bonjour,
Une solution peut être, en Feuil1, de faire le total sur... 50 feuilles par exemple, sans se demander si elles existent.
Je m'explique, on va dire que chacune des feuilles créé se nommera de la sorte NOMx (ou x est un nombre) et que le sous-total sera en A1 (c'est un exemple).
Dans la feuille de total il suffit d'entrer, sur les 50 première cases de la colonne A :
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 :
J'ai testé en faisant une somme sur 15 feuilles dont seulement 8 créées.
Une solution peut être, en Feuil1, de faire le total sur... 50 feuilles par exemple, sans se demander si elles existent.
Je m'explique, on va dire que chacune des feuilles créé se nommera de la sorte NOMx (ou x est un nombre) et que le sous-total sera en A1 (c'est un exemple).
Dans la feuille de total il suffit d'entrer, sur les 50 première cases de la colonne A :
=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.
RE
je suis entrain d'essayer mais je comprends pas trop comment tu fais en fait. Je ne suis pas un pro d'excel alors je mouline un peu.
est-il possible d'affiner tes explications ou bien de m'envoyer ton fichier test pour que je vois exactement comment tu as fait?
merci d'avance
je suis entrain d'essayer mais je comprends pas trop comment tu fais en fait. Je ne suis pas un pro d'excel alors je mouline un peu.
est-il possible d'affiner tes explications ou bien de m'envoyer ton fichier test pour que je vois exactement comment tu as fait?
merci d'avance
Je m'explique :
La fonction INDIRECT(x) sert à interpréter "x" au lieu de l'afficher simplement.
Ici "x" est une concaténation de chaine (plusieurs morceaux mis bout à bout).
On a d'abord "NOM" qui est le nom de la feuille, sans son numéro.
Ensuite LIGNE() qui renvoit le numéro de ligne de la case et sert pour mettre un numéro à la feuille.
Puis "!A1" qui est la case sur la feuille (le "!" liant la feuille à la case).
Ce qui donne en fait "NOMx!A1" et renvoit donc la valeur de la feuille "NOMx" sur la case "A1".
Ensuite la fonction SOMME.SI se contente de faire la somme de toutes les valeurs numériques positives.
La fonction INDIRECT(x) sert à interpréter "x" au lieu de l'afficher simplement.
Ici "x" est une concaténation de chaine (plusieurs morceaux mis bout à bout).
On a d'abord "NOM" qui est le nom de la feuille, sans son numéro.
Ensuite LIGNE() qui renvoit le numéro de ligne de la case et sert pour mettre un numéro à la feuille.
Puis "!A1" qui est la case sur la feuille (le "!" liant la feuille à la case).
Ce qui donne en fait "NOMx!A1" et renvoit donc la valeur de la feuille "NOMx" sur la case "A1".
Ensuite la fonction SOMME.SI se contente de faire la somme de toutes les valeurs numériques positives.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok j'avais compris à peu pres
mais avec ta méthode faut faire 50 ligne pour les 50 feuilles présente. et seulement apres les additionner en excluant les valeurs abérantes.
je voulais savoir si il est possible de faire directement la somme comme ca :
=SOMME(Feuil1:Feuil5!B3)
car c'est les cases B3 que je veux sommer, mais mettre à la place de "feuil5" un truc comme "feuil n", en gros aller jusqu'à la dernière feuille.
je pense qu'il y a peu etre moyen de faire ceci en incluant une macro qui compte le nombre de feuille ou bien annonce le nom de la dernière feuille présente...
penses tu que ce serais possible?
mais avec ta méthode faut faire 50 ligne pour les 50 feuilles présente. et seulement apres les additionner en excluant les valeurs abérantes.
je voulais savoir si il est possible de faire directement la somme comme ca :
=SOMME(Feuil1:Feuil5!B3)
car c'est les cases B3 que je veux sommer, mais mettre à la place de "feuil5" un truc comme "feuil n", en gros aller jusqu'à la dernière feuille.
je pense qu'il y a peu etre moyen de faire ceci en incluant une macro qui compte le nombre de feuille ou bien annonce le nom de la dernière feuille présente...
penses tu que ce serais possible?
Oui tu peux faire ça par macro bien sûr.
A ce moment tu mets un bouton sur la feuille de somme.
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 :
Ou places ta feuille pour la somme en premier, dans ce cas la la boucle est :
De toute manière, s'il n'y a rien en B3 sur cette feuille, ça ajoutera 0 :)
Voilà en macro !
A ce moment tu mets un bouton sur la feuille de somme.
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 !
Wawww tu t'y connais bien.
je te remercie beaucoup pr tes explications.
je testerais ca en fin d'aprem car je suis sur un autre projet en ce moment.
merci
je te remercie beaucoup pr tes explications.
je testerais ca en fin d'aprem car je suis sur un autre projet en ce moment.
merci