Récapitulative de différentes feuilles sans doublons

Tager

XLDnaute Nouveau
Bonjour à tous,

Je suis en train de traiter des feuilles excel avec énormément de données.

Voici mon problème.
1) J'aimerais pouvoir faire un récapitulatif de tous les participants depuis le début et les éditions a venir. En colonne B de chaque feuil il y a le numéro de dossard en colonne C de chaque feuille il y a les nom et prénom en colonne F le temps effectuée en colonne G des points attribuer en fonction de la performance. Ce que je souhaite c'est juste regrouper toutes les colonnes B, C, D, E et sans doublons de manière automatique

2) La feuille "Recap" doit contenir en colonnes "B, C, D, E" sans doublons toutes les colonnes "B, C, D, E" de toutes les autres feuilles. Ensuite, la feuille "Recap" doit pouvoir regrouper toutes les colonnes "F & G" des autres feuilles les unes à côtés des autres a partir des colonnes "H & I". Pour préciser dans la feuille "Recap" je dois avoir en "H & I" les colonnes "F & G" de la Feuil "Résultats AL-1" , puis en "J & K" les colonnes de la Feuil "Résultats AL-2"" "F & G" et encore en "L & M" les colonnes de la Feuil "Résultats AL-3" "F & G" et ainsi de suite.
Je pense qu'une solution par VBA pourrait résoudre ce problème!!!

Une âme bienveillante aurait quelques idées ?
 

Pièces jointes

  • AL-General.xls
    1.2 MB · Affichages: 32

klin89

XLDnaute Accro
re Tager :)

Avec ce code, tu associes une couleur à une catégorie
De plus les doublons de valeur max sont aussi surlignés
VB:
Option Explicit
Sub test()
Dim e, v, x, i As Long, dico As Object
    Application.ScreenUpdating = False
    Set dico = CreateObject("Scripting.Dictionary")
    With Sheets("Feuil1").Range("a1").CurrentRegion
        With .Offset(2).Resize(.Rows.Count - 2)
            .Interior.ColorIndex = xlNone
            'ici on associe une couleur a une categorie
            For Each e In Array(Array("F", 41), Array("S", 42), Array("JF", 43), _
                                Array("JH", 44), Array("A1", 45), Array("A2", 46), _
                                Array("A3", 47), Array("A4", 48), Array("A5", 17), _
                                Array("V1", 50), Array("V2", 36), Array("V3", 37), _
                                Array("V4", 19), Array("V5", 20))
                v = Evaluate("IF(" & .Columns(4).Address & "=""" & e(0) & """," & .Columns(7).Address & ")")
                x = Application.Max(v)
                dico(CStr(x)) = Empty
                For i = 1 To UBound(v, 1)
                    If dico.exists(CStr(v(i, 1))) Then
                        .Rows(i).Interior.ColorIndex = e(1)
                    End If
                Next
                'dico.Remove CStr(x)
                dico.RemoveAll
            Next
        End With
    End With
    Set dico = Nothing
    Application.ScreenUpdating = True
End Sub
klin89
 

Discussions similaires

Réponses
13
Affichages
598

Statistiques des forums

Discussions
312 555
Messages
2 089 563
Membres
104 215
dernier inscrit
Jean Michl