Appeler toutes les cellules A1 des feuilles commencant par MO - XXX

Benoit DESCOURS

XLDnaute Junior
Bonjour,

Je souhaiterais additionner toutes les cellules A1 des feuilles de mon classeur, feuilles dont le nom commence toujours par MO -

Est-ce possible sans VBA ?

Merci d'avance.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Ma solution ne faisait que répondre littéralement à la question du message#1:
"Faire la somme de toutes les cellules A1 des onglets dont le noms commencent par MO -"

Or désormais il ne s'agit plus du tout de cela!

A quoi bon poser une question initiale qui change totalement en cours de route...

Du coup, j'ai perdu du temps à répondre à une question qui n'existe plus.

Heureusement que je serai payé tout pareil!
 

Benoit DESCOURS

XLDnaute Junior
Victor,

Merci de ta persévérance.
Mais je n'ai pas des résultats cohérents.

Il faut que lorsque j'alimente la feuille 2018-1 avec mes heures de la semaine S1 de mes salariés A et B pour les chantiers 1, 2 ou 3.
Et puis le S2 et S3...

De même pour la feuille 2018-2 et la feuille 2018-3


J'ai mes des formules qui vont piocher de feuilles en feuilles pour te montrer.

En gros, je cumule les cases bleues, semaine par semaine qui correspondent à mon chantier 2018-1
De même avec les cases jaunes (2018-02) et les cases vertes (2018-3).
 

Pièces jointes

  • descours.xlsx
    15.7 KB · Affichages: 38

Staple1600

XLDnaute Barbatruc
Re

Tu ne m'as pas importuné.
Tu as posé une question qui ne décrit pas la réalité de la problématique rencontrée.
Et ce faisant, tu n'as pas remarqué que mon message précédent était écrit au second degré.

En attendant ma solution à la question 1 fonctionne et n'est absolument pas difficile à mettre en oeuvre.
La preuve ;)
Lance cette macro une fois dans un classeur vierge avec une seule feuille
VB:
Sub MarcelProust_Reboot()
Dim i
For i = 1 To 3
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "MO -" & i
ActiveSheet.[A1] = i
Next
ActiveWorkbook.Names.Add Name:="nf", RefersToR1C1:= _
        "=MID(GET.WORKBOOK(1),FIND(""]"",GET.WORKBOOK(1))+1,99)&INDIRECT(""iv65000"")"
Sheets(1).[B1].FormulaArray = _
        "=SUM(IF(LEFT(nf,3)=""MO "",N(INDIRECT(""'""&nf&""'!A1""))))"
 Sheets(1).[B1].Select
End Sub
J'obtiens bien sur la Feuille 1 la somme des cellules A1 des onglets dont le nom commence par MO -
Et c'est ce que tu demandais dans le message 1 ;)
Maintenant si ce n'est pas ce que tu souhaitais, bah fallait pas le demander dans le message#1 ;)

@Victor21
[pj]
Tu l'as eu où ton joli tiroir dans l'autre fil, l'autre jour ;) ?
[/pj]
 
Dernière édition:

Benoit DESCOURS

XLDnaute Junior
Staple1600,

Merci. Effectivement, tu additionnes bien toutes les feuilles MO_.
Mais du coup, l'adapter à mon fichier me semble très complexe, avec mes conditions (selon les N° de chantier) et avec mes 3 chantiers possible par jour.
Cf mon fichiers Excel en ballade...
 

Staple1600

XLDnaute Barbatruc
Re

@Benoit DESCOURS
Tu as vu mon avatar?
Là je suis en mode pyschorigide.
J'utilise uniquement mon cervelet pour répondre à la question 1 telle qu'elle a été posée ;)

Et si j'étais moi, confronté à une problématique similaire à la tienne, je réagencerai mes données de manière à pouvoir les exploiter avec un TCD.

NB: Tu as vraiment testé mon code?
Et tu as donc été voir dans le gestionnaire de noms ce qu'on doit y trouver ? ;)
 

Benoit DESCOURS

XLDnaute Junior
Re,

Tu as vu mon avatar. Je suis très interrogatif...

Je ne maîtrise pas les code VBA, macros... Je ne sais pas comment appeler ça.

C'est pour ça que la méthode de Victor, par des formules de calcul, sera plus à ma portée.

Le terme de psychorigide désigne tout un chacun dès lors qu'il fait preuve d'obstination, d'autorité, de perfectionnisme.

Et je ne pourrais mettre en place quoi que ce soit sans que mon cher interlocuteur se mette à mon niveau.
 

Victor21

XLDnaute Barbatruc
Re,

Reprenons depuis le début :
Benoit DESCOURS à dit:
Je souhaiterais additionner toutes les cellules A1 des feuilles de mon classeur
Que font mes formules?
Mais je n'ai pas des résultats cohérents.

Il faut que lorsque j'alimente la feuille 2018-1 avec mes heures de la semaine S1 de mes salariés A et B pour les chantiers 1, 2 ou 3.
Et puis le S2 et S3...

De même pour la feuille 2018-2 et la feuille 2018-3


J'ai mes des formules qui vont piocher de feuilles en feuilles pour te montrer.

En gros, je cumule les cases bleues, semaine par semaine qui correspondent à mon chantier 2018-1
De même avec les cases jaunes (2018-02) et les cases vertes (2018-3).
Comme le suggère Staple si judicieusement (mais c'est un pléonasme) réorganisez vos données.

Une démarche logique serait d'abord de se demander ce qu'on veut obtenir, puis ensuite d'organiser les données, pas l'inverse.
 

Staple1600

XLDnaute Barbatruc
Re

La macro que j'ai posté était purement illustrative
(pour t'éviter de devoir créer toi-même le nom nf)

Et là encore mon précédent message est censé être en mode humoristique ;)
(j'ai pourtant mis des emoticones)

J'en déduis donc que tu n'as pas pu tester ma macro alors ?

Et qu'en est-il de ma suggestion du TCD ?
(Tableau Croisé Dynamique)

NB: Pour lancer une macro, il suffit de ne pas suivre l'adage qui figure dans la signature de Victor21 ;)
Let's be curious

PS: avatar= image qui se trouve au dessus de mon pseudo
 

Benoit DESCOURS

XLDnaute Junior
Re Victor,

Je suis arrivé à faire un truc pas maL... pour mon niveau délétaire.
Je fais :
=SI('Salarié A'!F2='2018-1'!A1;'Salarié A'!F3;0)+SI('Salarié A'!F6='2018-1'!A1;'Salarié A'!F7;0)+SI('Salarié A'!F10='2018-1'!A1;'Salarié A'!F11;0)

Mais si au lieu de salarié A, je peux utiliser MO_1:MO_2, alors ce serait royal.
Mais pour le coup, je n'y arrive pas.
 

Pièces jointes

  • Classeur1.xlsx
    16.8 KB · Affichages: 32

Staple1600

XLDnaute Barbatruc
Re

@Benoit DESCOURS
Tu m'as demandé comment on lance une macro?
Je t'ai répondu dans le message#25 (il y a un lien - tu as cliqué dessus?)
Je ne sais toujours si tu as pu faire le test sur un classeur vierge pour comprendre le fonctionnement des formules et de la formule nommée nf
(C'était à cela que devait servir ma macro)

Je t'ai suggéré l'emploi d'un TCD.
J'attends toujours un commentaire de ta part à ce sujet.

Pour le message#24, je t'informais simplement que tu n'as pas non plus commenté les suggestions faites par Victor21
 

Benoit DESCOURS

XLDnaute Junior
Re,

Oui, j'ai appliqué ce que tu m'as demandé. Dans le gestionnaire de nom nf sert à lire le classeur.
Et ça sert à sélectionner les feuilles MO -
J'ai juste ?

Après ta formule qui additionne en cellule B1 =SOMME(SI(GAUCHE(nf;3)="MO ";N(INDIRECT("'"&nf&"'!A1"))))
Additionne les cellules A1 de toutes les feuilles MO -
J'ai encore juste ?

Alors, j'ai compris dans les grandes lignes. Mais comment alors modifier cette formule avec mes conditions de sélection avant addition.
On additionne les heures du chantier 1, 2 et 3 seulement si on a travaillé sur le chantier dont le code est 2018-1
 

Discussions similaires

Statistiques des forums

Discussions
312 169
Messages
2 085 918
Membres
103 038
dernier inscrit
Herve7