Tri sur Excel

Merci à tous de vos infos sur ma questions récédente.

Vous avez l'air tres calés sur Excel alors j'en profite.

Est-ce que l'on peut mettre en place sur un même tableau un ou plusieurs tris (chacun avec des critères différents) qui s'effectueraient automatiquement ou en un seul clic. Ils'agit de tris répétitifs sur des tableaux mis à jour régulièrement. Je travaille sur Excel 2003. Merci !

Brennus

Bonjour

Un c'est sur, plusieurs avec VBA surement.

Envois un fichier Excel pour voir la configuration de tes tableaux et donne les clès de tris

Cordialement

Bonsoir,

On peut faire une macro, encore faudrait-il savoir quels critères de tri

tu souhaite,

un fichier de quelques lignes anonymisées suffira. (structure réelle)

édit: Salut Amadéus

Amicalement

Claude

Bonjour et merci pour vos réponses. Comme demandé ci-joint un tableau et les infos nécessaires.

Encore merci pour votre aide.

Cordialement

Brennus.

27tris.zip (9.90 Ko)

Bonsoir à tous,

Faut-il enchainer les 3 tris, ou faire 3 boutons séparés ?

édit:

à chaque tri, on prend bien le tableau de "D à Y" ?

à te relire

Amicalement

Claude

Bonjour,

Je dois faire les 3 tris successivement ou individuellement donc je pense que 3 boutons séparés sont préférables.

Merci

Cordialement

Brennus

-- 04 Mai 2011, 05:16 --

Re,

Désolé je n'ai pas répondu entièrement oui à chaque tri la zone de tri est la même.

Cordialement.

Brennus

Bonjour à tous,

Liste déroulante en "H1" pour choix du tri,

numérotation des colonnes "B" et "D" à vérifier (non affectées par les tris)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i%, cL%, x%, P%
'Macro par Claude Dubois pour "BRENNUS" Excel-Pratique le 4 mai 2011
If Not Application.Intersect(Target, Range("h1")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        Application.ScreenUpdating = False

    '--- choix tri (cL = N° col)---
            Select Case Target
                Case Is = "1er Tri": GoTo Tri1
                Case Is = "2ème Tri": cL = 20
                Case Is = "3ème Tri": cL = 22
                Case Else: GoTo Fin
            End Select

    '--- tri ---
    If cL = 20 Then                             'colonne "S" décroissant

        Range("d6:z25").Sort Key1:=Cells(6, cL - 1), Order1:=xlDescending, _
        Header:=xlNo, OrderCustom:=1, MatchCase:=False

    Else                                        'colonne "U" croissant

        Range("d6:z25").Sort Key1:=Cells(6, cL - 1), Order1:=xlAscending, _
        Header:=xlNo, OrderCustom:=1, MatchCase:=False
    End If

    '--- couleurs ---
        For i = 6 To 25
            Cells(i, cL) = i - 5                        'N° à écrire
            Select Case i - 5                           '
                Case Is = 1: x = 6:             P = 1   'jaune
                Case Is = 2: x = 5:             P = 2   'bleu
                Case Is = 3: x = 34:            P = 1   'turquoise
                Case Is = 4, 5, 6: x = 39:      P = 1   'lavande
                Case Is = 17: x = 45:           P = 1   'orange
                Case Is = 18, 19, 20: x = 3:    P = 2   'rouge
                Case Else: x = 1:               P = 2   'noir
            End Select                                  '
            Cells(i, cL).Interior.ColorIndex = x        'couleur fond
            Cells(i, cL).Font.ColorIndex = P            'couleur police
        Next i
GoTo Fin

    '---
Tri1:
        Range("d6:z25").Sort _
    Key1:=Range("h6"), Order1:=xlDescending, _
    Key2:=Range("w6"), Order2:=xlDescending, _
    Key3:=Range("s6"), Order2:=xlDescending, _
        Header:=xlNo, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom
Fin:
    Application.Goto Range("a1"), Scroll:=True
    Target.Activate
End If
End Sub

Amicalement

Claude

23brennus-tris.zip (19.32 Ko)

Bonjour,

Merci c'est parfait, je me permettrais peut être de faire à nouveau appel à vos connaissances.

Encore tous mes remerciements.

Cordialement

Brennus

Ok

Rechercher des sujets similaires à "tri"