Probleme de tri et de regroupement

  • Initiateur de la discussion Initiateur de la discussion biggir
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

biggir

XLDnaute Nouveau
Bonjour,

Voici mon probleme : j'ai 3 colonnes dans lesquels je dois effectuer des regroupements
ex :
13:00:00 choix1 valeur1-1
13:00:00 choix2 valeur2-1
13:00:00 choix3 valeur3-1
13:00:00 choix1 valeur1-2
13:00:00 choix2 valeur2-2
13:15:00 choix1 valeur1-3
13:15:00 choix2 valeur2-3
13:15:00 choix1 valeur1-4

Et je voudrais obtenir ceci
13:00:00 choix1 valeur1-1 valeur1-2
13:00:00 choix2 valeur2-1 valeur2-2
13:00:00 choix3 valeur3-1
13:15:00 choix1 valeur1-3 valeur1-4
13:15:00 choix2 valeur2-3

Alors je voulais passer par des while en parcourant toutes les lignes mais ca va etre fastidieux lors de son lancement !

Quelqu'un aurait'il une idee ?

Je pensais peut etre passer par de filtres mais je ne sais pas faire ...

Si quelqu'un pouvait m'aider ...

Merci beaucoup
 

Pièces jointes

Dernière édition:
Re : Probleme de tri et de regroupement

Bonsoir Biggir, bonsoir le Forum

Je passe vite fait entre deux requêtes SQL pour me détendre un peu en VBA...

Voici une approche

Code:
Option Explicit
Private Const WS_Source As String = "Feuil1" 'A Adapter
Private Const WS_Cible As String = "Feuil2" 'A Adapter
 
Sub Rebuilding_Group()
Dim TabDataSource As Variant
Dim ColTimeRef As Collection
Dim Ref As Variant
Dim Container As Variant
Dim L As Long, i As Integer, C As Byte
i = 1
C = 2
 
With Sheets(WS_Source)
    .Activate
    .UsedRange.Sort Key1:=Range("A1"), Order1:=xlAscending, _
                    Key2:=Range("B1"), Order2:=xlAscending
 
    TabDataSource = .Range(.Range("A1"), .Range("C65536").End(xlUp))
End With
Set ColTimeRef = New Collection
For L = 1 To UBound(TabDataSource, 1)
    On Error Resume Next
            ColTimeRef.Add CStr(Format(TabDataSource(L, 1), "HH:MM:SS")) & Chr(35) & CStr(TabDataSource(L, 2)), CStr(Format(TabDataSource(L, 1), "HH:MM:SS")) & Chr(35) & CStr(TabDataSource(L, 2))
    On Error GoTo 0
Next
 
    For Each Ref In ColTimeRef
        Container = Split(Ref, Chr(35))
            For L = 1 To UBound(TabDataSource, 1)
                If CStr(Format(TabDataSource(L, 1), "HH:MM:SS")) = Container(0) Then
                        If TabDataSource(L, 2) = Container(1) Then
                             With Sheets(WS_Cible)
                                .Cells(i, 1) = Format(TabDataSource(L, 1), "HH:MM:SS")
                                .Cells(i, 2) = TabDataSource(L, 2)
                                    C = C + 1
                                .Cells(i, C) = TabDataSource(L, 3)
                              End With
                        Else
                            C = 2
                        End If
                End If
            Next
    i = i + 1
    Next
 
End Sub

J'ai testé sur ton fichier en lui ajoutant pas mal de ligne, ça à l'air de tourner relativement vite... (sinon il faudrait ajouter un Tablo Séquentiel Dynamique que l'on reporterait qu'à la fin sur la Feuil2)

Bon Week End à tous et toutes

@+Thierry

 
Re : Probleme de tri et de regroupement

Bonsoir Monique,

Un plaisir de te re-croiser sur le Forum.

J'avais fait mes tests justement sur une des Valeurs qui était la plus récurrente :
14:00:00 VTR525 = 303 256 339 285 87 54 6354

Mais il me semble que tu la retournes tout à fait juste mais deux fois dans ton tableau ? (en ligne 26 et 28)

Bon Week End
@+Thierry
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
1 K
Retour