VBA : ajouter nouvelle feuille Excel avec somme

Résolu
thierry.b3 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
thierry.b3 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout le monde,

Faute de trouver une solution sur Internet, je viens faire appel à vos lumières !

Je souhaite ajouter, par un bouton, des nouvelles feuilles qui recopient intégralement ma feuille modèle. Pas de problème jusqu'ici. Là où ça se complique (pour moi) c'est qu'à chaque nouvelle feuille ajoutée, ma feuille synthèse doit aller récupérer des valeurs dans ces feuilles ajoutées.

Plus concrètement :

- Feuille 1 : là où je mets différentes informations, dont le bouton
- Feuille 2 : synthèse
- Feuille 3 : feuille modèle
- Feuille 4, 5, 6, etc. : feuille de travail (copie de ma feuille modèle)

En A1 de ma feuille synthèse => sommer toutes les cellules D1 de toutes mes feuilles de travail.

J'espère être limpide dans mes propos. Je débute dans la programmation.

En souhaitant à tout le monde une bonne journée.

Bien cordialement,
Thierry

2 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour à tous,

    une solution sans macro.
    Ajoute un feuille Fin (que tu pourras masquer) après ta dernière feuille à prendre en compte.
    Dans ta feuille synthèse :
    =SOMME(Feuil4:Fin!D1)

    Ajoute tes feuilles juste avant Fin. Toutes les feuilles entre Feuil4 et Fin seront prises en compte dans la somme.
    eric

    2
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      salut Eric,

      Joli! tu as droit à un +1 pour tes étrennes ;o)

      j'avais essayé mais n'avait pas pensé à cette feuille "fin"
      bravo
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Salut michel,

      Merci.
      Dommage que ça n'a pas eu l'heur de plaire au demandeur ;-)
      Bonne journée avec le soleil.
      eric
      0
    3. thierry.b3 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
       
      Pour me plaire il faut que j'essaie, chose qui n'a pas encore été effectué !
      0
    4. thierry.b3 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
       
      Malheureusement la formule ne fonctionne pas sur mon classeur (#NOM ?).
      0
    5. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Il faut mettre le vrai nom de la 1ère feuille à prendre en compte et avoir créé la feuille Fin.
      Et excel en français bien sûr
      eric
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Dim Nbre As Byte, Cptr As Byte, Total As Double

    Sheets(3).Range("A1") = 0
    Nbre = ThisWorkbook.Sheets.Count
    For Cptr = 4 To Nbre
    Total = Total + Sheets(Cptr).[D1]
    Next
    Sheets(3).Range("A1") = Total
    1
    1. thierry.b3 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci énormément Michel. J'ai intégré votre code au mien et ça fonctionne parfaitement.

      Néanmoins j'ai remarqué qu'une fois la nouvelle page ajoutée Excel ne fait plus les actualisations automatiquement. De fait, lorsque j'actualise certaine page de travail ma feuille synthèse ne récupère plus les données de ces dernières.

      Avez-vous une astuce pour forcer l'actualisation ?
      0
    2. thierry.b3 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
       
      Soit dit en passant, voici mon code complet :

      Sub NouvellePage()

      Dim Nombre As Byte
      Dim Cptr As Byte
      Dim Total As Double


      Sheets("PAGE VIERGE").Select
      Cells.Select
      Selection.Copy

      Sheets.Add After:=Worksheets(3)

      Cells.Select
      ActiveSheet.Paste

      Sheets("SYNTHESE").Select
      Range("F18") = 0

      Nombre = Sheets.Count

      For Cptr = 4 To Nombre
      Total = Total + Sheets(Cptr).[E26]
      Next

      Sheets("SYNTHESE").Range("F18") = Total


      End Sub
      0
    3. thierry.b3 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
       
      La seule solution que je vois pour le moment c'est d'utiliser un bouton et de le rattacher à votre code. Je me demande néanmoins s'il est possible de trouver une solution qui permette une actualisation automatique (sans cliquer sur ce bouton).
      0
    4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour,

      au départ combien de feuilles après la feuille "synthèse"?
      D'où vient la feuille "page vierge" ?
      reste elle sous ce nom ? si oui, que se passe t il pour un nouvel ajout ?
      tu la colles toujours en feuille 4 (juste après "synthèse") ?
      comment est remplie la cellule E26 ?

      trouver une solution qui permette une actualisation automatique (sans cliquer sur ce bouton).
      oui. mais il faut répondre à ces questions surtout la dernière

      Au passage:
      En VBA, on évite au maximum les "select", et "copy-paste" pour la rapidité et le confort visuel
      0
    5. thierry.b3 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Bonjour Michel,

      Au départ combien de feuilles après la feuille "synthèse"?
      Après ma feuille "SYNTHESE" j'ai ma "PAGE VIERGE" (feuille modèle) puis mes feuilles de travail


      D'où vient la feuille "page vierge" ?
      C'est en fait ma feuille modèle.

      reste elle sous ce nom ? si oui, que se passe t il pour un nouvel ajout ?
      Non. J'ai intégré un interbox qui modifie le nom de l'onglet pour chaque nouvel ajout.

      tu la colles toujours en feuille 4 (juste après "synthèse") ?
      Elle est collée en feuille 4 (après "PAGE VIERGE")

      comment est remplie la cellule E26 ?
      Somme de plusieurs éléments sur cette même feuille.

      Merci beaucoup de ton aide.
      0