XL 2016 Extraire des doublons sur 5 colonnes

Cédric12580

XLDnaute Nouveau
Bonjour,

J'ai plusieurs personnes qui interviennent plusieurs jours par semaine dans ma structure et font un nombre d'heures en fonction du jour de présence.
J'aimerais pouvoir extraire tous les intervenants dans une seule colonne afin de réaliser un total par semaine puis par année.
J'ai fouillé sur beaucoup de forums mais je n'ai pas trouvé ce que je cherche.
Au mieux j'arrive à trouver les doublons sur deux colonnes mais pas sur 5, et je ne peux pas modifier le format de mon tableau.
HELP ME
 

Pièces jointes

  • HELP ME - extraire des doublons sur 5 colonnes.xlsx
    10.9 KB · Affichages: 15

chris

XLDnaute Barbatruc
RE

Si tu affiches les requêtes : Données, Requêtes et connexions, clic droit sur Data, Modifier cela ouvre PowerQuery et tu verras les étapes de la requête à droite

J'ai légèrement simplifié ci-joint

Ta structure de titres ne permet pas un décroisement tout simple
J'ai donc utilisé la la méthode d'alternance de lignes

Regarde les étapes et si tu coinces sur l'une ou l'autre reposte
 

Pièces jointes

  • Synthese_PQ.xlsx
    19.6 KB · Affichages: 5

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Deux solutions dans le fichier joint. Une par formule (somme de somme.si)
Et une par Power Query sur la feuille du même nom.

Les 'Help me' ou 'sos' sont à proscrire.

Cordialement
 

Pièces jointes

  • HELP ME - extraire des doublons sur 5 colonnes.xlsx
    27.7 KB · Affichages: 7

job75

XLDnaute Barbatruc
Bonsoir Cédric12580, chris, Roblochon,

Une solution VBA très classique dans le fichier joint :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim d As Object, c As Range
Set d = CreateObject("Scripting.Dictionary")
For Each c In [A:I].SpecialCells(xlCellTypeConstants, 2) 'colonnes à adapter éventuellement
    If IsNumeric(CStr(c(1, 2))) Then d(c.Value) = d(c.Value) + c(1, 2)
Next
'---restitution---
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [M4] '1ère cellule de destination, à adapter
    If d.Count Then
        .Resize(d.Count) = Application.Transpose(d.keys) 'Transpose est limitée à 65536 lignes
        .Offset(, 1).Resize(d.Count) = Application.Transpose(d.items)
        .Resize(d.Count, 2).Sort .Cells(1), xlAscending, Header:=xlNo 'tri alphabétique
    End If
    .Offset(d.Count).Resize(Rows.Count - d.Count - .Row + 1, 2).ClearContents 'RAZ en dessous
End With
Application.EnableEvents = True 'réactive les évènements
End Sub
La macro est dans le code de la feuille et se déclenche quand on modifie une cellule quelconque.

A+
 

Pièces jointes

  • extraire des doublons sur 5 colonnes(1).xlsm
    19.8 KB · Affichages: 10

Cédric12580

XLDnaute Nouveau
Re bonjour,

ce code pour trier fonctionne très bien.
Un autre problème se pose.
J'ai créé des userform pour remplir mon tableau, elles fonctionnent très bien mais par contre le code de tri ne fonctionne plus. mes cellules se remplissent en fonction des choix de la userform mais le tri ne se fait plus!!

Merci pour vos réponses
 

Discussions similaires

Statistiques des forums

Discussions
312 194
Messages
2 086 064
Membres
103 110
dernier inscrit
Privé