Classement d un tableau par date?

  • Initiateur de la discussion Phil
  • Date de début
P

Phil

Guest
Bonjour tout le monde,
J ai fais un tableau avec plusieurs colonnes, et je desire a chaque fois que je klik sur un bouton j ai le tableau classe par date (c'est ma premiere colonne).
Ca doit pas etre super difficile, mais le probleme que j ai rencontrer c est tout d abbord que dans mon tableau il y a une couleur par ligne ce qui fou la merde quand je klik sur classement 'AaZ', il faudrait inclure dans la macro une ligne qui diarit de ne classer que les valeurs sans toucher au format et ca je sais pas faire.

Merci pour votre aide.
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Phil, bonjour le forum,

Je te propose le code suivant appliqué au bouton :

Private Sub CommandButton1_Click()
Dim nl As Long 'déclare la variable nl (Nombre de Lignes)
Dim nc As Byte 'déclare la variable nc (Nombre de Colonnes)
Dim tc() As Variant 'déclare la variable tc(Tableau des Couleurs)
Dim x As Long 'déclare la variable x
nl = Range('A65536').End(xlUp).Row 'définit la variable nl
nc = Range('IV1').End(xlToLeft).Column 'définit la variable nc
ReDim tc(nl - 1) 'dimensionne le Tableau des Couleurs
'récupère la couleur de chaque ligne
For x = 0 To nl - 1 'boucle sur toutes les lignes
tc(x) = Cells(x + 1, 1).Interior.ColorIndex 'définit la couleur de la ligne
Next x 'prochaine ligne
'classe le tableau par date
Range('A1').Sort Key1:=Range('A1'), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'remet les couleurs de chaque ligne
For x = 0 To nl - 1 'boucle sur toutes les valeurs du Tableau de Couleurs
Range(Cells(x + 1, 1), Cells(x + 1, nc)).Interior.ColorIndex = tc(x) 'définit la couleur de la ligne
Next x 'prochaine ligne
End Sub
 

pat1545.

XLDnaute Accro
Salut,

bizarre , je viens de trier ma colonne A dans laquelle j'ai mis des couleurs différentes et le tri se fait malgré les couleurs ..ou alors j'ai encore pas pigé :))

Je réponds à la place de Robert (je me permets) ; oui son code tiens compte ici des lignes et colonnes avec les lignes qu'il a écrites ci dessous.

nl = Range('A65536').End(xlUp).Row 'définit la variable nl
nc = Range('IV1').End(xlToLeft).Column 'définit la variable nc

Patrick
 

Statistiques des forums

Discussions
313 060
Messages
2 094 926
Membres
106 128
dernier inscrit
lopierre