Trie d'une plage de cellule dans une autre colonne

Bonjour,

Malgré mes recherches je n'arrive pas à appliquer les codes de tri sur VBA.

Mon but est de prendre une plage de cellule Q3:Q8762 et qu'elle soit copiée et triée dans l'ordre décroissant dans la colonne BF3:BF8762 de la même feuille. Il ne faut pas que la colonne source soit modifié car cela changerait tous les autres calcul de la feuille.

J'ai essayé :

ws4.Range("Q3:Q8762").Sort Key1:=ws4.Range("BF3"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Mais cela ne marche pas..

Avez vous une solution à me proposer ?

Merci d'avance pour votre aide !

Salut Flaann,

comme tu l'expliques si bien dans ta demande, il faut d'abord... copier!!!

Range("BF3:BF8762").Value = Range("Q3:Q8762").Value
Range("BF3:BF8762").Sort key1:=Range("BF3"), order1:=xlDescending, Orientation:=xlSortColumns

A+

Bonjour curulis57 !

Effectivement ça marche niquel !

Et j'avais jamais pensé faire un copier coller de cette façon sans le .copy donc encore mieux !

Merci beaucoup !

J'ai donc une deuxième question !

Il me faut trier une colonne automatiquement dans une autre donc sans appuyer sur la macro.

en gros je pensais mettre dans le code de la feuille (ça s'appelle formulaire il me semble ?) le même code que précédemment.

Donc un copier coller des valeurs et un .sort.

Est ce que cela trierai ma colonne à chaque fois qu'il y a un changement de valeurs ou pas ?

Salut,

ta colonne [Q] se copie et se trie en [BF] au moindre changement dans [Q].

Code à coller dans le module de la feuille concernée par ce tri.

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, Range("Q:Q")) Is Nothing Then
    Range("BF3:BF8762").Value = Range("Q3:Q8762").Value
    Range("BF3:BF8762").Sort key1:=Range("BF3"), order1:=xlDescending, Orientation:=xlSortColumns
End If
'
End Sub

A+

Effectivement cela fonctionne parfaitement !

Merci beaucoup !

Rechercher des sujets similaires à "trie plage colonne"