Re : Recherchev doublons
Bonjour Dranreb,
Il faut intégrer une boucle pour le sous-groupe Typ dans celle pour le Mois, et c'est elle qui contiendra la boucle la plus interne sur Détail.
Je ne vois pas.
c'est quand même compliqué... pour les néophytes.
Private Sub Worksheet_Activate()
Dim M As Long, Plg As Range, Te(), Le&, Ts(), Ls&, _
Données As Collection, Nom As SsGroup, Prénom As SsGroup, _
Mois As SsGroup, Typ As SsGroup, TotJ As Double, Détail
ReDim Ts(1 To 2000, 1 To 5)
For M = 1 To 12
Set Plg = ColUti(Worksheets(M).[A4:F4])
If Not Plg Is Nothing Then
Te = Plg.Value
For Le = 1 To UBound(Te)
If Te(Le, 3) = 9 Or Te(Le, 3) = 10 Then
Ls = Ls + 1
Ts(Ls, 1) = Te(Le, 1) ' Nom
Ts(Ls, 2) = Te(Le, 2) ' Prénom
Ts(Ls, 3) = M
Ts(Ls, 4) = Te(Le, 3) ' Typ
Ts(Ls, 5) = Te(Le, 6) ' Nbr. Jrs
If Ls = 0 Then Exit Sub
MClassement.DernièreLigneIdx = Ls
Set Données = GroupOrg(Ts, 1, 2, 3, 4)
Ls = 0
For Each Nom In Données: Ls = Ls + Nom.Count: Next Nom
ReDim Ts(1 To Ls, 1 To 26)
Ls = 0
For Each Nom In Données
For Each Prénom In Nom.Contenu
Ls = Ls + 1
Ts(Ls, 1) = Nom.Id
Ts(Ls, 2) = Prénom.Id
For Each Mois In Prénom.Contenu
TotJ = 0
For Each Détail In Mois.Contenu
TotJ = TotJ + Détail(3)
Next Détail
If TotJ > 0 Then Ts(Ls, Mois.Id * 2 + Typ.Id - 8) = TotJ
Next Mois, Prénom, Nom
ValPlgAju(Me.[Résultat]) = Ts
Me.[Résultat].RowHeight = 24
End Sub
Et si en plus on ajoute de la réflexion à ce que l'on aurait pu faire avant... je vais pas y arriver! mais c'est bien on est toujours en mouvement... dans sa tête.
Bon c'est pas tout; comme dit plus haut, il faut pas y passer la semaine...
A+
Cdlt
Lego