Trier des donnees dans un tableau

romainchu78

XLDnaute Occasionnel
Bonjour a tout le forum, Je souhaiterais pouvoir trier les donnees d'un tableau en lignes.
chaque ID a un certain nombre de status avec des dates et heures correspondantes.
ces status sont classees en colonne. je souhaiterais les avoir classee en ligne pour chaque ID.
certains ID ont des status en moins et peuvent etre classees dans un ordre different. si il n'y a pas de status pour un ID donne il faudrait renvoyer la valeur 0.
jai mis un fichier en exemple. je ne sais pas par ou commencer pour faire le code. merci
 

Pièces jointes

  • Trier.xls
    25.5 KB · Affichages: 80
  • Trier.xls
    25.5 KB · Affichages: 83
  • Trier.xls
    25.5 KB · Affichages: 82

skoobi

XLDnaute Barbatruc
Re : Trier des donnees dans un tableau

Bonjour,

Je te propose ce code:

Code:
Sub test()
Dim trouve As Range, plage As Range
Dim derlig As Long, ligdeb As Long, ligID As Long, col As Long
Application.ScreenUpdating = False
derlig = [A65536].End(xlUp).Row
ligdeb = 2
ligID = [C65536].End(xlUp).Row + 1
Do While ligdeb <= derlig
  Range("A" & ligdeb).Copy Range("C" & ligID)
  ligfin = Range("A" & ligdeb).End(xlDown).Row - 1
  Set plage = Range("B" & ligdeb & ":B" & ligfin)
  For col = 4 To 7
    Set trouve = plage.Find(Cells(1, col).Value, after:=plage(plage.Count), LookIn:=xlValues, lookat:=xlWhole)
    If Not trouve Is Nothing Then
      trouve.Offset(1, 0).Copy Cells(ligID, col)
    Else: Cells(ligID, col).Value = 0
    End If
  Next
  ligdeb = ligfin + 1
  ligID = [C65536].End(xlUp).Row + 1
Loop
Application.ScreenUpdating = True
End Sub
 

Discussions similaires