trier plusieur collone par ordre alphabetique

creolia

XLDnaute Impliqué
Bonjour à tous

je viens vous demandez un petit coup de main pour trier plusieurs colonne par ordre alphabetique.

je m'explique j'ai des colonne avec des nom sur un tableau B3:CP50 je souhaiterais grace à une macro proceder au trie de chaque colonne par ordre alphabetique j'ai essayer en enregistrant une macro mais sa me trie que la premiere colonne

Sub Triealpha()
With Sheets("Dispo").Select
Range("B3").Select

Range("B3:CP117").Select
ActiveWorkbook.Worksheets("Dispo").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Dispo").Sort.SortFields.Add Key:=Range("B3"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Dispo").Sort
.SetRange Range("B3:CP50")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Dispo").Select
Range("B3").Select
End With
End Sub

pouvez vous m'aider svp merci
 

chris

XLDnaute Barbatruc
Bonjour

Soit tu tries en conservant le lien logique entre tes colonnes et il faut autant de Add Key que de colonnes.

Soit tu tries indépendamment chaque colonne, ce qui casse le lien éventuel entre les colonnes t il faut autant de tris que de colonnes appliqué chacun à une seule colonne.

(Edit ortho)
 
Dernière édition:

creolia

XLDnaute Impliqué
Re bonjour donc en fait j'ai réussis à bidouiller une macro le seul soucis c'est il est un peu long peut ton réduire le temps de calcule svp

Sub tri1()

With Sheets("Feuil1").Select
For i = 1 To 93

ActiveSheet.Cells(1, i).Resize(ActiveSheet.UsedRange.Rows.Count, 1).Sort _
Key1:=ActiveSheet.Cells(1, i), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Next i
End With
End Sub
 

Pièces jointes

  • Tetse1.xlsm
    987.2 KB · Affichages: 50

JCGL

XLDnaute Barbatruc
Bonjour à tous,

Tu as une multitude de formes sur la feuille 1...

Peux-tu essayer avec :

VB:
Sub Tri()
Application.ScreenUpdating = 0: Application.Calculation = xlCalculationManual: Application.EnableEvents = 0
    With Feuil1
        For i = 1 To 93
            .Cells(1, i).Resize(ActiveSheet.UsedRange.Rows.Count, 1).Sort _
                    Key1:=.Cells(1, i), Order1:=xlAscending, Header:=xlGuess
        Next i
    End With
    Application.ScreenUpdating = 1: Application.Calculation = xlCalculationAutomatic: Application.EnableEvents = 1
End Sub

A+ à tous
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
568
Réponses
11
Affichages
420

Statistiques des forums

Discussions
312 085
Messages
2 085 196
Membres
102 814
dernier inscrit
JLGalley