Par macro récuperer la somme des valeurs d'une même cellule sur plusieurs onglets

corvelc

XLDnaute Occasionnel
Bonjour,

Après recherche dans le forum, j'ai trouvé plusieurs exemples, mais vu mon niveau en VBA, je n'arrive pas au résultat souhaité. D'où ma sollicitation des experts et autres connaisseurs en VBA.

Mon besoin : Je dois pouvoir faire la somme du total des jours/hommes contenus dans la même cellule de plusieurs onglets dits « Chiffrages » dans un classeur Excel, (le nombre d’onglets dans le classeur « Chiffrage » est variable, possibilité de 1 à 16 onglets maxi), puis copier la somme des cellules dans un autre classeur dit « référentiel » dans une cellule dite « Total des jours/hommes » de l’onglet « 6-Partie Charges Equipes ». .

Explications exemples fournis : Dans mon formulaire avec 3 onglets « chiffrage », faire la somme de toutes les cellules en P20 (nb jour/homme) pour tous les onglets nommés en « x-Chiffrage lotx », et ensuite copier le résultat dans le référentiel (autre classeur Excel) en I10 dans l’onglet « 6-Partie Charges Equipes ».

Remarques :
- Il me faut en macro car je doit pouvoir intégrer dans un ensemble de macro d’automatisme.
- Un formulaire peut contenir à minima 5 onglets nommés : Dossier Corapi , 1-FICHE , 2-Colorisation projet , 3-Chiffrage lot1 et Synthèse CORAPI. A maxima 20 onglets nommés en : Dossier Corapi , 1-FICHE , 2-Colorisation projet , 3-Chiffrage lot1, 4-Chiffrage lot2, 5-Chiffrage lot3, ……. Jusqu’à 18-Chiffrage lot16 et Synthèse CORAPI.

Ci joint : un exemple allégé du référentiel et une fiche avec 3 lots de chiffrage, si ça fonctionne pour l’exemple, je me débrouillerai pour le reste. Des commentaires d’aide sont ajoutés dans les fichiers joints

Merci d’avance pour l’aide.

CC
 

Hippolite

XLDnaute Accro
Re : Par macro récuperer la somme des valeurs d'une même cellule sur plusieurs onglet

Bonsoir,

Les macros ne sont pas indispensables :
en I10 : =SOMME('[fiche chiffrage.xls]3-Chiffrage lot1:5-Chiffrage lot3'!$P$20)
en J10 : =SOMME('[fiche chiffrage.xls]3-Chiffrage lot1:5-Chiffrage lot3'!$S$20)

Pour s'affranchir d'un nombre d'onglets variable, insérer un onglet "Début" et un onglet "Fin" de part et d'autre des onglets "Chiffrage"
Les formules deviennent alors indépendantes des onglets "Chiffrage"
en I10 : =SOMME('[fiche chiffrage.xls]Début:Fin'!$P$20)
en J10 : =SOMME('[fiche chiffrage.xls]Début:Fin'!$S$20)

A+
 

corvelc

XLDnaute Occasionnel
Re : Par macro récuperer la somme des valeurs d'une même cellule sur plusieurs onglet

Merci Hippolite pour ton retour, mais j’ai difficulté de mettre en fonction dans une cellule de mon référentiel, sachant que j’alimente ce référentiel (un classeur à part des classeurs chiffrage), partir d’une macro qui balaye un grand nombre évolutif de classeur Excel de chiffrage (entre 50 et +75) pour récupérer toutes les données dont j'ai besoin.
- l'ensemble des données récupérées pour un même classeur chiffrage est stocké sur une seule ligne du classeur de chiffrage. (première cellule de la ligne = N° du classeur chiffrage)
- Pour le classeur suivant je stocke donc sur à la ligne suivante.
- ce qui fait que le nombre de ligne évolue toujours.

Aujourd'hui, je ne sais faire, s'il existe dans un classeur chiffrage, un seul onglet de chiffrage Ex : "3-Chiffrage lot1". je récupère de la façon suivante :
.Range("I" + CStr(NbRow)).Value = wb.Worksheets("3-Chiffrage lot1").Range("P20").Value
.Range("J" + CStr(NbRow)).Value = wb.Worksheets("3-Chiffrage lot1").Range("S20").Value
(NbRow étant le N° du classeur chiffrage, donc le N° de la ligne à alimenter).

Comment pourrais-je appliquer ta méthode via une macro, si plusieurs onglets de chiffrage dans un même classeur pour faire la somme de toutes les cellules P20, toutes les cellules S20 de tout les onglets chiffrage d’un même classeur.
Exemple :
3-Chiffrage lot1
4-Chiffrage lot2
5-Chiffrage lot3
6-Chiffrage lot4

Par rapport à ton exemple saches que :
- l'onglet avant le premier chiffrage est toujours : « 2-Colorisation projet »
- l'onglet après le dernier chiffrage est toujours : « Synthèse CORAPI »

j'espère ne pas avoir été trop compliqué dans mes explications.

CC
 

Hippolite

XLDnaute Accro
Re : Par macro récuperer la somme des valeurs d'une même cellule sur plusieurs onglet

Bonjour,
VB:
Public Sub compil()
    Dim Sh As Worksheet, Nj, Forfait
    For Each Sh In Workbooks("fiche chiffrage.xls").Sheets
        If InStr(Sh.Name, "Chiffrage") > 0 Then
            Nj = Nj + Sh.Range("P20")
            Forfait = Forfait + Sh.Range("S20")
        End If
    Next Sh
    Workbooks("referentiel.xls").Sheets("6-Partie Charges Equipes").Range("I10") = Nj
    Workbooks("referentiel.xls").Sheets("6-Partie Charges Equipes").Range("J10") = Forfait
End Sub
A+
 

corvelc

XLDnaute Occasionnel
Re : Par macro récuperer la somme des valeurs d'une même cellule sur plusieurs onglet

Merci, là avec ton exemple, cela répond parfaitement à mon besoin sur tous les points. Je vais pouvoir intégrer dans mes macros existantes.
Mais tout compte fait et une fois la solution sous les yeux, mais comment ne pas avoir trouvé !!!.
Certainement que je ne suis pas encore suffisamment formaté pour cogiter en VBA.
Encore merci et bonne journée.
CC
 

Discussions similaires

Statistiques des forums

Discussions
312 111
Messages
2 085 395
Membres
102 882
dernier inscrit
Sultan94