XL 2013 Somme à partir d'une liste sans doublon

Ludo.Mtpl

XLDnaute Nouveau
Bonjour à tous et toutes!

Je viens de passer plusieurs jours à chercher une solution mais sans succès je baisse les bras et commence à déprimer!
D'après ce que j'ai lu il semble possible de faire ce que je souhaite mais soit je n'arrive pas à transposer les formules, soit il faut valider par "Ctrl+maj+Enter" et la mise à jour ne se fait pas ou lors de la validation je n'obtiens pas les résultats attendus, soit il s'agit de macro que je ne sais ni créer ni utiliser ... Bref, je suis perdu. Sans doute qq'un pourra t'il m'aider ici (?):eek:
Je m'explique: J'ai fait un petit calendrier, un mois par onglet dans lequel je déclare des codes de projets sur lesquels j'ai travaillé.
Comme conseillé, le plus simple étant un exemple voilà quelques explications concernant le fichier joint:
- Le 4 janvier j'ai travaillé sur le projet N°16 001 pendant 6 heures à des taches administratives mais aussi sur le projet N° 16 002 (pour lequel j'ai inséré une ligne comme à chaque fois que celà sera nécessaire pour les jours où je travaille sur plusieurs sujets) pendant 3 heures pour faire du calcul.
- Le 5 janvier à nouveau sur projet 16 001 pendant 2 heures à de la recherche bibliographique.
- Le 11 février 5 heures de calcul et 3 heures de recherches sur le projet 16 001.
- et ainsi de suite.

Voilà donc ce que je souhaiterais obtenir dans un onglet qui servirait de bilan annuel (ou au pire sur chaque mois):
- Lister sans doublon les différents projets sur lesquels j'ai travaillé pendant toute l'année (comme rencontré sur le forum, j'ai essayé de me débrouiller avec les fonctions equiv, index, recherchev... mais sans succès probant vu mon inexpérience dans ce genre de fonctions)
- Associer à chaque projet le total du nombre d'heures passée à faire du calcul, de l'administratif et des recherches.

J'espère avoir été suffisamment clair pour que vous puissiez m'aider et je vous remercie d'avance pour vos conseils!
 

Pièces jointes

  • Calendrier Heures.xlsx
    17.1 KB · Affichages: 41

Jocelyn

XLDnaute Barbatruc
Re : Somme à partir d'une liste sans doublon

Bonjour le Forum,
Bonjour Ludo.Mtpl,

Un essai en pièce jointe pas sur que ce soit la meilleure solution.

Cordialement
 

Pièces jointes

  • Calendrier Heures-1.xlsx
    17.4 KB · Affichages: 40

Ludo.Mtpl

XLDnaute Nouveau
Re : Somme à partir d'une liste sans doublon

Bonjour Jocelyn!

Merci pour cette réactivité! :)
Je viens de regarder la proposition, je ne connaissais pas cette fonction (une lacune parmi tant d'autres!:eek:) Ca semble intéressant mais deux petits soucis:
- Si j'insère une ligne supplémentaire sur une journée parce que j'aurais travaillé sur un autre projet ce jour là, ça me renvoie une erreur #N/A
- Dans la colonne A, les projets ne se listent pas tous seuls sans doublons, il faut les inscrire manuellement.
Je sais à la fois qu'excell est très puissant et que d'un autre coté je n'en exploite pas le 1/100e des capacités alors je me dis que "tout est possible tout est réalisable, c'est le jeu de la vie" :) mais peut etre suis je trop exigeant (?)
 

Jocelyn

XLDnaute Barbatruc
Re : Somme à partir d'une liste sans doublon

re,

Le soucis de N/A vient du fait que chaque morceau de la formule doit avoir la même hauteur donc si dans une page tu ajoutes une ligne il faut faire pareil dans les autres.

ensuite vu que tu vas avoir 12 onglets il faudrait mieux passer par du VBA et la je ne sais pas faire autrement une autre solution serait de mettre tous tes mois sur la même feuille voir exemple en fichier
 

Pièces jointes

  • Calendrier Heures-1V1.xlsx
    22.3 KB · Affichages: 53

Ludo.Mtpl

XLDnaute Nouveau
Re : Somme à partir d'une liste sans doublon

Merci Jocelyn, finalement ça a l'air plus compliqué que ce que j'imaginais. Avec mes connaissances limitées, je comprends pourquoi je n'ai pas réussi à le faire!
Il va peut etre falloir que je change carrément la présentation à la base, ne faire qu'un onglet et sans doute me mettre au VBA mais là c'est pas gagné!...
 

Dranreb

XLDnaute Barbatruc
Re : Somme à partir d'une liste sans doublon

Bonsoir.
Si toute les données sont dans un seul tableau, je rappelle que j'ai une fonction GroupOrg très facile à paramétrer qui sait fabriquer une collection de collections emboitées les unes dans les autres, classées et sans doublon, qu'il ne reste plus qu'à explorer par des boucles For Each In imbriquées.
 

Ludo.Mtpl

XLDnaute Nouveau
Re : Somme à partir d'une liste sans doublon

Bonjour Dranreb!
Votre fonction GroupOrg a l'air intéressante, mais je dois reconnaitre que là vous m'avez perdu! Pour avoir toutes les données dans un seul tableau, je peux éventuellement commencer par une synthèse mensuelle des projets et de chaque type d'heures associées. Si déjà celà fonctionne je pourrais voir ensuite comment récupérer chaque bilan mensuel dans un onglet séparé pour faire la synthèse annuelle...? Pouvez vous m'en dire plus ou peut etre me faire voir un exemple sur le premier fichier que j'avais joint? Merci!!
 

Paf

XLDnaute Barbatruc
Re : Somme à partir d'une liste sans doublon

Bonjour Ludo.Mtp, Jocelyn, Dranreb


un essai macro qui inscrit le bilan dans la feuille Synthèse annuelle qui doit être la dernière feuille.

Code:
Sub Bilan()
 Dim Tablo, i As Long, j As Long
 Dim Dico1, Dico2, Dico3
 Set Dico1 = CreateObject("Scripting.Dictionary")
 Set Dico2 = CreateObject("Scripting.Dictionary")
 Set Dico3 = CreateObject("Scripting.Dictionary")
 For i = 1 To Worksheets.Count - 1 'pour toutes les feuilles sauf la dernière
    Tablo = Worksheets(i).Range("A4").CurrentRegion
    For j = LBound(Tablo) + 3 To UBound(Tablo)
        If Tablo(j, 3) <> "" Then
            Dico1(Tablo(j, 3)) = Dico1(Tablo(j, 3)) + Tablo(j, 4)
            Dico2(Tablo(j, 3)) = Dico2(Tablo(j, 3)) + Tablo(j, 5)
            Dico3(Tablo(j, 3)) = Dico3(Tablo(j, 3)) + Tablo(j, 6)
        End If
    Next
 Next
 If Dico1.Count > 0 Then
    Tablo = Application.Transpose(Array(Dico1.keys, Dico1.Items, Dico2.Items, Dico3.Items))
    Worksheets("Synthèse annuelle").Range("A3").Resize(UBound(Tablo, 1), UBound(Tablo, 2)) = Tablo
 End If
End Sub

A+
 

Modeste

XLDnaute Barbatruc
Re : Somme à partir d'une liste sans doublon

Bonjour le fil :)

Même si c'est un peu à contre-courant, une bonne vieille Consolidation (onglet Données) pourrait répondre à la demande (si les données ne doivent pas être actualisée très régulièrement ... autrement, ça pourrait devenir un peu répétitif, j'en conviens :p)

L'image ci-dessous montre les paramètres utilisés:

361447-somme-partir-dune-liste-sans-doublon-consolidation.png
 

Pièces jointes

  • Consolidation.png
    Consolidation.png
    24.5 KB · Affichages: 86

Ludo.Mtpl

XLDnaute Nouveau
Re : Somme à partir d'une liste sans doublon

Wahoo, je pensais pas qu'il y ait autant de solutions! Merci pour tous vos conseils!
Pour faire un petit bilan, la solution de Dranreb " GrpOrgLudo.Mtpl.xlsm" fonctionne parfaitement. Même lorsqu'on insère une ligne pour déclarer un second projet sur un meme jour la synthèse se met à jour automatiquement.
Par contre, je ne m'y connais pas assez pour savoir comment ça fonctionne et comment le réutiliser. Comment puis je l'intégrer dans mon calendrier complet que j'ai. Est ce une macro? Comment ça se lance...? Je suis désolé, je sais ça fait bcp bcp de questions mais je suis complètement débutant dans ce style de travail sur excell.
 

Dranreb

XLDnaute Barbatruc
Re : Somme à partir d'une liste sans doublon

Ça se lance quand on active la feuille dont le module porte cette Sub Worksheet_Activate.
Elle utilise des fonctions et objets que j'ai documenté du mieux que j'ai pu dans les modules de service.
Pour les réutiliser dans d'autres classeurs il faut y installer ces 4 modules de service dont 2 de classe.
 
Dernière édition:

Statistiques des forums

Discussions
314 710
Messages
2 112 115
Membres
111 428
dernier inscrit
Andrya