IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Calcul avec un nombre variable de feuilles


Sujet :

Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 78
    Points
    78
    Par défaut Calcul avec un nombre variable de feuilles
    Bonjour à tous,
    voilà mon problème : Je travaille sur un dossier Excel qui a n feuilles. n varie avec le temps (Quand je traite une nouvelle personne, je lui crée une nouvelle feuille). Ces feuilles sont identiques et possèdent une zone (appelons-là "zone") avec des nombres. Je voudrais que, dans une dernière feuille fixe et récapitulative ( la n+1ème), chaque cellule de "zone" soit la somme des n cellules correspondantes des n premières feuilles.
    Ce résultat me semble impossible à obtenir par une formule. Mais je ne vois pas non plus le code VBA qui amène au résultat...Je ne sais pas dire :
    "For Each feuille sauf la dernière" ou
    "For Each feuille sauf la première" en déplaçant ma feuille récapitulative en tête.
    Merci de votre aide
    Jacques

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Bonjour,

    Cela est faisable avec la formule Somme

    En plaçant cette formule dans la cellule A1 de la feuil8, on obtiendra la somme des cellules A1 des se trouvant entre Feuil1 et Feuil7
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(Feuil1:Feuil7!A1)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 78
    Points
    78
    Par défaut
    Merci, Jerome, mais tu n'as pas lu le vrai problème : je ne sais pas combien il y a de feuilles, et donc de zones à ajouter....OK?

  4. #4
    Membre habitué
    Homme Profil pro
    Back Office Marchés
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Back Office Marchés
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par Pantagruel92 Voir le message
    Je ne sais pas dire : "For Each feuille sauf la dernière" ou
    "For Each feuille sauf la première" en déplaçant ma feuille récapitulative en tête.
    Merci de votre aide
    Jacques
    Bonjour Jacques,

    Tu peux essayer une boucle plutôt qu'une énumération, du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set wbClasseur = ThisWorkbook
          For i = 1 To wbClasseur.Worksheets.Count - 1
              'ici le code pour traiter ta zone (plage de cellules ?)
          Next i
    Cordialement,

    Guillaume

  5. #5
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    J'ai du mal à visualiser la feuille récapitulative.
    Tu veux avoir en A1 la somme des cellules A1 des autres feuilles, ou avoir la liste des feuilles avec leur valeur en A1?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 78
    Points
    78
    Par défaut
    Jerome,
    je veux que A1 (par exemple) de la feuille resume soit la somme de toutes les A1 des autres feuilles.
    Guillaume,
    d'accord, mais comment indiquer, dans la boucle, la meme cellule de chaque feuille? est-ce qu ce qui suit marche?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set wbClasseur = ThisWorkbook
          For i = 2 To wbClasseur.Worksheets.Count - 1
              worksheets.("resume").Range("A1") = worksheets.("resume").Range("A1")  + worksheets(i).Range("A1")
          Next i
    Je vais le tester. mais je suis sur une autre piste : modifier la formule dans la cellule A1 de "resumé" dès que je crée une nouvelle feuille. quelque chose comme ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ActiveSheet.Copy After:=ActiveSheet
    z = ActiveSheet.Range("nouveau")
    'La cellule "nouveau" de "resume" contient le nom de la nouvelle feuille
    ActiveSheet.Name = z
    Worksheets("resume").Activate
    z = Worksheets("resume").Range("B13").Formula & " + " & z & "!B13"
    ' en supposant que c'est la cellule B13 qu'il faut additionner dans "resume"
    Worksheets("resume").Range("B13").Formula = z
    Merci de votre aide. Je crois que je vais m'en sortir seul : j'ai interrogé avant de réfléchir, ou je pense mieux depuis que j'ai posté la question!
    Mais une idée géniale sera toujours la bienvenue!
    Jacques

  7. #7
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    je veux que A1 (par exemple) de la feuille resume soit la somme de toutes les A1 des autres feuilles.
    Dans ce cas, ma première proposition est adaptée à ton besoin.
    Une adaptation avec une feuille Début et une feuille Fin pour borner tes feuilles personnels et l'utilisation de la formule ci dessous fera la somme sans utiliser VBA
    Un fichier Exemple : FORMULE - Somme multi feuilles.xls

  8. #8
    Membre habitué
    Homme Profil pro
    Back Office Marchés
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Back Office Marchés
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par Pantagruel92 Voir le message
    Guillaume,
    d'accord, mais comment indiquer, dans la boucle, la meme cellule de chaque feuille? est-ce qu ce qui suit marche?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set wbClasseur = ThisWorkbook
          For i = 2 To wbClasseur.Worksheets.Count - 1
              worksheets.("resume").Range("A1") = worksheets.("resume").Range("A1")  + worksheets(i).Range("A1")
          Next i
    Il faut appliquer la propriété ".Value" aux membres de ton affectation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 2 To wbClasseur.Worksheets.Count - 1
         worksheets.("resume").Range("A1").Value = worksheets.("resume").Range("A1").Value  + worksheets(i).Range("A1").Value
    Next i
    Mais oui je pense que ça marche sinon je ne te le proposerais pas

    Cordialement,

    Guillaume

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 78
    Points
    78
    Par défaut
    La voilà, l'idée géniale, Jérome! C'est d'encadrer les feuilles actives par deux feuilles qui ne servent qu'à avoir des limites fixes à ma somme....J'ai pas eu l'idée avant : je vieillis!!
    Merci.
    Je marque le problème comme résolu.
    jacques

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/03/2009, 19h00
  2. fct avec un nombre variable d'argument.
    Par hpfx dans le forum Débuter
    Réponses: 3
    Dernier message: 11/01/2009, 22h46
  3. Calcul avec le nombre complexe
    Par Arry_C dans le forum C
    Réponses: 3
    Dernier message: 13/04/2007, 21h27
  4. Probleme dans un calcul avec un nombre negatif
    Par el_quincho dans le forum Access
    Réponses: 4
    Dernier message: 05/06/2006, 15h18
  5. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 12h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo