Tri automatique

Bonjour à tous, après avoir réglé des soucis de mise en page grâce à l'aide des membres du forum, j'aimerai maintenant que mon tableau ce tri automatiquement, j'ai essayer plusieurs codes trouvés sur le forum mais cela ne fonctionne pas.

Sur la page la première feuille "Stock", j'aimerai que le tableau E1 F13 se trie automatiquement dans l'ordre décroissant en fonction du stock de bouteille. Merci pour votre aide. Je vous met le fichier en question en pièce jointe.

Edit : ajout de la pièce jointe

19stock.xlsx (216.83 Ko)

bonjour,

Le fichier n'est pas passé, max : 300 Ko

zippe-le, s'il le faut

Voila je viens de mettre une pièce jointe...

J'ai essayer des codes en faisant des recherches dans le forum, comme celui-ci

Range("E1:F13").Sort Key1:=Range("F1"), Order1:=xlAscending, DataOption1:=xlSortTextAsNumbers

Mais apparemment ça marche pas, en même temps je me doutais que cela n'allait pas être aussi simple.

Re-,

Donc, pour le code de tri, ce que m'a donné l'enregistreur (après simplification) :

With Worksheets("Stock").ListObjects("Tableau4").Sort
    .SortFields.Clear
    .SortFields.Add Key:=Range("Tableau4[[#All],[Stock]]"), Order:=xlDescending
    .SortFields.Add Key:=Range("Tableau4[[#All],[Régions]]"), Order:=xlAscending
    .Header = xlNo
    .Apply
End With

ensuite, tes formules dans les cellules F1 à F13, pas top....

Mais pour pouvoir utiliser celle du dessous, il faut tout d'abord que tu respectes les casses des régions :

Ex : dans la colonne E, tu mets Sud-Ouest, et dans la colonne I : Sud_Ouest

Et pour le languedoc, en colonne E, tu mets Languedoc Roussillon (avec un espace), et dans la colonne I ; Languedoc_Roussillon

Si tu veux vraiment faire des stats avec tes données, faut être précis, surtout en orthographe....

Donc, la formule que tu pourrais mettre (PS : faire un recherche jusqu'à 9999, c'est un peu prétentieux, non?)

=SOMME.SI($I$17:$I$200;[@Régions];$A$17:$A$200)

Note les $ afin de rendre les adresses en absolu...

Ah, et enfin, évite de colorer toutes les cellules, jusqu'à la fin, tu as vu ton ascenseur, on peut à peine l'utiliser...

Et tu sais, que dans la cellule A1048575, tu as une formule...

si un jour, tu as plus d'un million de vins différents, tu penseras à moi?

Bref, nettoie un peu ton fichier, tu y gagneras en clarté....

bon courage

Effectivement ça fait un peu ( et pas qu'un "peu" ) beaucoup. J'ai fais un peu de ménage comme tu me l'as conseillé.

J'ai essayé ton code pour le tri automatique, sauf que ça à l'air de rentrer en conflit avec la macro pour la feuille "cave" dans un fichier complet (coloration des lignes quand on sélectionne un emplacement)... car cette dernière ne fonctionne plus et m'affiche un message d'erreur et le tri n'a pas l'air de ce faire.

Je met le fichier complet avec toutes les pages pour que vous puissiez voir le problème, en tout cas merci pour ton aide précieuse, j'essaye de suivre, mais c'est pas évident pour moi.

Sinon au départ j'avais mis les noms composés avec des "_" car sinon mes listes déroulantes ne fonctionné pas...

22vins-1.xlsm (281.55 Ko)

Re-,

C'était presque ça....

Il manque juste le code que tu utilises pour le tri.....

Essaie encore....

Je l'ai fais mais ca n'a pas l'air de marcher comme je te l'ai expliqué dans le message précédent , regarde le fichier joint

14vins-281-29.xlsm (280.14 Ko)

Re-,

Euh, le code que je t'ai mis cet après-midi devait faire partie d'une macro, et non pas copié tel quel dans l'évènement de feuille....

De plus, tu as modifié ton "Tableau4", qui ne comporte plus qu'une colonne (la colonne E)

donc, redimensionne déjà ton Tableau4.

Puis, tu fais comme moi :

Dans le ruban "Développeur" (ou "Affichage" si tu n'as pas ce ruban), tu cliques sur Macro/Enregistrer une macro

Tu fais ton tri

Et tu arrêtes l'enregistrement

ton code s'est enregistré tout seul dans un module standard

Reste plus qu'à mettre un bouton, ou une image, et lui affecter cette macro (ainsi, dès que tu appuieras sur ce bouton, le tri se fera automatiquement)

Bon courage

Encore merci j'ai réussi a faire la macro et a mettre en place le bouton de tri pour le tableau du stock des régions.

J'ai voulu faire pareil pour le tableau des couleurs le tableau C1 D6 ou D7, mais bizarrement un coup ça marche au coup j'ai un message d'erreur exécution '1004'. Je voie pas trop pourquoi.

Sinon au lieu d'avoir un bouton est-il possible que cela ce fasse automatique quand il y a une modification des valeurs du tableau ?

20vins-25281-2529.xlsm (289.77 Ko)

Bonjour,

Effectivement, ton code ne fonctionne que si tu as sélectionné une cellule de ton tableau...

Remplace par :

Sub Macro3()
'
' Macro3 Macro
' Tri Couleurs/Stock
'

'
    ActiveWorkbook.Worksheets("Stock").ListObjects("Tableau3").Sort.SortFields. _
        Clear
    ActiveWorkbook.Worksheets("Stock").ListObjects("Tableau3").Sort.SortFields.Add _
        Key:=Range("Tableau3[22]"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("Stock").ListObjects("Tableau3").Sort
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Pour ta 2 ème question :

Un exemple de code, que tu pourrais mettre dans le code de la feuille (maintenant, tu connais la différence avec un module standard..) :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A17:A517")) Is Nothing Then
    Call Macro2
    Call Macro3
End If
End Sub

En supposant bien sûr que tes codes de tri soient appelés Macro2 et Macro3

Bonne journée

merci pour tout

Rechercher des sujets similaires à "tri automatique"