Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:

FYL

XLDnaute Nouveau
C'est peut-être le resize qui prend du temps car souvent la mise en forme des cellules est assez lente...
Pourquoi pas faire le tri et ensuite le dimensionnement des colonnes en une seule fois
 

Discussions similaires

Réponses
3
Affichages
588
Réponses
11
Affichages
439
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…