VBA : ajouter nouvelle feuille Excel avec somme

Résolu/Fermé
thierry.b3 Messages postés 14 Date d'inscription lundi 21 mai 2018 Statut Membre Dernière intervention 24 mai 2018 - Modifié le 21 mai 2018 à 12:07
thierry.b3 Messages postés 14 Date d'inscription lundi 21 mai 2018 Statut Membre Dernière intervention 24 mai 2018 - 24 mai 2018 à 11:32
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

eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 240
Modifié le 22 mai 2018 à 08:48
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
22 mai 2018 à 14:53
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
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 240
22 mai 2018 à 15:05
Salut michel,

Merci.
Dommage que ça n'a pas eu l'heur de plaire au demandeur ;-)
Bonne journée avec le soleil.
eric
0
thierry.b3 Messages postés 14 Date d'inscription lundi 21 mai 2018 Statut Membre Dernière intervention 24 mai 2018
22 mai 2018 à 16:29
Pour me plaire il faut que j'essaie, chose qui n'a pas encore été effectué !
0
thierry.b3 Messages postés 14 Date d'inscription lundi 21 mai 2018 Statut Membre Dernière intervention 24 mai 2018
22 mai 2018 à 22:58
Malheureusement la formule ne fonctionne pas sur mon classeur (#NOM ?).
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 240
22 mai 2018 à 23:46
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
21 mai 2018 à 15:34
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
thierry.b3 Messages postés 14 Date d'inscription lundi 21 mai 2018 Statut Membre Dernière intervention 24 mai 2018
21 mai 2018 à 16:48
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
thierry.b3 Messages postés 14 Date d'inscription lundi 21 mai 2018 Statut Membre Dernière intervention 24 mai 2018
21 mai 2018 à 16:49
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
thierry.b3 Messages postés 14 Date d'inscription lundi 21 mai 2018 Statut Membre Dernière intervention 24 mai 2018
21 mai 2018 à 17:23
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
22 mai 2018 à 08:26
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
thierry.b3 Messages postés 14 Date d'inscription lundi 21 mai 2018 Statut Membre Dernière intervention 24 mai 2018 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
22 mai 2018 à 09:02
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