Trier une colone selon les valeurs d'une autre colonne

Bonjour,

Disons que dans un tableau j'ai les colonnes A, B, C...

Je voudrais afficher dans C les valeurs contenues dans A selon l'ordre des valeurs (numériques) contenues dans B.

Est-ce possible, et si oui comment ?

Salut Schnee,

comme je comprends l'affaire, [C] est vide ?

Il faut donc trier [A:B] selon ['B] et copier en [C] les valeurs de [A] en gardant, j'imagine, sinon à quoi ça sert, les colonnes [A:B] dans leur ordre initial.

Un double-clic démarre la macro...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim tData
'
Cancel = True
tData = Range("A1:B10").Value
'
Range("A1:B10").Sort key1:=Range("B1"), order1:=xlAscending, Orientation:=xlTopToBottom
Range("C1:C10").Value = Range("A1:A10").Value
Range("A1:B10").Value = tData
'
End Sub

Suspense...

A+

6sort.xlsm (13.21 Ko)

Merci, je vais essayer le code.

Effectivement, C est vide et je dois garder A et B inchangées parce qu'il y a d'autre colonnes qui en dépendent.

ÇA MARCHE !

Super, merci.

... cependant j'aurais encore une question annex :

dans la ligne de code tData = Range("A1:B10").Value je comprends qu'on sauvegarde les données dans le tableau qui vont être changées durant le tri, pour pouvoir les restaurer à la fin.

Mais le problème, c'est que je retrouve bien les valeurs, mais pas les formules qu'il y avait initialement.

Y a-t-il moyen d'utiliser une autre propriété que value, peut-être formula pour garder le tableau exactement dans son état initial ?

Merci.

Salut Schnee,

vois pas comment faire autrement...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Cancel = True
Application.ScreenUpdating = False
'
Range("A1:B10").Copy Destination:=Range("AAA1:AAB10")
Range("A1:B10").Sort key1:=Range("B1"), order1:=xlAscending, Orientation:=xlTopToBottom
Range("C1:C10").Value = Range("A1:A10").Value
Range("AAA1:AAB10").Cut Range("A1:B10")
Application.CutCopyMode = False
'
Application.ScreenUpdating = True
'
End Sub

A+

Merci, mais simplement en sauvegardant et restaurant .Formula au lieu de .Value dans le premier script, ça marche à merveille.

Rechercher des sujets similaires à "trier colone valeurs colonne"