VBA - Copier/Coller et trier des colonnes

Bonjour à tous,

1) Je cherche à copier les valeurs de cellules B2:AE22 de Feuil1 pour les coller sur les cellules B2:AE22 de Feuil2.

Comment je dois faire? J'ai essayer de regarder sur les forums, et je n'y arrive toujours pas.

2) Je voudrais trier les valeurs de chaque colonne, de la plus petite à la plus grande. Je pensais utiliser la commande :

Selection.Sort Key1:=Range("B28")

Mais comme je dois faire ce trie pour chacune de mes 30 colonnes, j'aimerais savoir s'il n'y a pas une commande qui le permettrait.

Merci à tous pour votre aide

Bonjour

Pour le tri :

Sub Tri()

Range("B2:B22").Select

ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("B2"), _

SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("Feuil1").Sort

.SetRange Range("B2:B22")

.Header = xlNo

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

End Sub

et pour le copier-coller

Sub CopierColler() à partir de la Feuille1

Range("B2:AE22").Copy Feuil2.Range("B2")

End Sub

Merci

Le code fonctionne, mais seue la 1ere colonne est triée :

Sub Tri()

'Copier-Coller

Worksheets("Feuil1").Activate

Range("B2:AE22").Copy Feuil1.Range("B2")

'Tri

Range("B2:B22").Select

ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Add Key:=Range("B2"), _

SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("Feuil2").Sort

.SetRange Range("B2:B22")

.Header = xlNo

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

End Sub

Comment je pourrais corriger ça ? merci d'avance c^^

Bonjour

Excusez-moi, j'ai répondu un peu vite

voici le nouveau code

Sub Tri()

Dim i

Application.ScreenUpdating = False

For i = 1 To 30

Range(Cells(2, 1 + i), Cells(22, 1 + i)).Select

ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Cells(2, 1 + i), _

SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("Feuil1").Sort

.SetRange Columns(1 + i)

.Header = xlYes

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

Next i

Cells(2, 2).Select

End Sub

Super! Merci, ca marche.

J'avais aussi tenté une méthode plutôt longue mais qui marche aussi : J'ai enregistré une macro de toute la manip de tri de toutes les colonnes ... mais c'est clairement une perte de temps !!

Merci et bonne journée !

Rechercher des sujets similaires à "vba copier coller trier colonnes"