Tri et actualisation auto d'un TCD

Kiriko

XLDnaute Occasionnel
Tri et actualisation auto d'un TCD [Résolu]

Bonjour,
Je me tourne vers vous, car malgré les nombreux posts traitant du sujet, et ayant l'impression d'avoir bien suivi les instructions, je n'y arrive pas. Voici la situation.
Mon but étant d'actualiser (l'ensemble) et de trier automatiquement (sur une colonne déterminée qui n'est pas la première) un TCD à l'ouverture de l'onglet. J'ai bien trouvé la méthode pour l'actualisation automatique (saisir :
Private Sub Worksheet_Activate()
ThisWorkbook.RefreshAll
End Sub

dans la source de la page, mais pour la fonction trier, avant même de chercher à l'automatiser, je n'y arrive pas "à la main". Le tri s'obstine à rester uniquement sur la première colonne, quoique je fasse... Je tourne en rond sur ce problème qui est sans doute très bête (une option "cachée"??) depuis 2 jours et je deviens fou.... Auriez-vous une idée sur mon erreur potentielle ? Une fois cela résolu, comment automatiser ce tri à l'ouverture de l'onglet (rajouter un code dans la source de la page?). Je joins un extrait du fichier en exemple...

Merci d'avance...
 

Pièces jointes

  • Essai tri TCD par nom.zip
    28.1 KB · Affichages: 90
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Tri et actualisation auto d'un TCD

Bonjour à tous,

Cela convient il ?

Comme demandé les codes sont sur l'activation de la page.

Principe :

  • Tu entres ou copies tes données sur la feuille... Data
  • Le tri se fait sur l'activation de la feuille Tri
  • Si tu reviens sur la feuille Data, le tri se fait aussi

A++ David
A+ à tous
 

Pièces jointes

  • JC Test pour tri auto.xls
    41.5 KB · Affichages: 67
Dernière édition:

Kiriko

XLDnaute Occasionnel
Re : Tri et actualisation auto d'un TCD

Merci beaucoup, c'est quasiment parfait, seuls 2 petits soucis persistent :
Si je dois rajouter une colonne, elle n'est pas prise en compte. Mon souhait était que le code s'adapte à la taille du tableau, jusqu'à la dernière colonne non vide, et jusqu'à la dernière ligne non vide (pour pouvoir laisser d'autres infos immobiles en bas en sautant une ligne). Sans doute avec "decaler", mais je ne sais pas comment l'utiliser ici.....
 

Kiriko

XLDnaute Occasionnel
Re : Tri et actualisation auto d'un TCD

Bonsoir à tous, bonsoir jean-pierre.

Merci beaucoup, JCGL, mais un bug subsiste. Lorsque je rajoute une ligne après en avoir sauté une (ligne que je ne veux pas trier bien sûr), ça ne fonctionne pas, et lorsque je rajoute une colonne après en avoir sauté une, ça bug....

Pour jean-pierre, j'ai compris que je ne pouvais pas trier directement une autre colonne que la première d'un TCD, je ferais donc un report sur un autre onglet et je demandais ici une méthode adaptable à toute les possibilités..
 

JCGL

XLDnaute Barbatruc
Re : Tri et actualisation auto d'un TCD

Bonjour à tous,

Merci beaucoup, JCGL, mais un bug subsiste. Lorsque je rajoute une ligne après en avoir sauté une (ligne que je ne veux pas trier bien sûr), ça ne fonctionne pas, et lorsque je rajoute une colonne après en avoir sauté une, ça bug....

L e tri ne supporte pas les lignes vides : il les colle à la dernière valeur de la colonne

J'ai compris que je ne pouvais pas trier directement une autre colonne que la première d'un TCD, je ferais donc un report sur un autre onglet et je demandais ici une méthode adaptable à toute les possibilités..

Je te rappelle que sur un TCD le tri se fait sur la première colonne mais que tu choisir ta première colonne en déplaçant le champ en première colonne par un simple déplacement à la souris

A+ à tous
 

Kiriko

XLDnaute Occasionnel
Re : Tri et actualisation auto d'un TCD

Bonjour à tous, bonjour JCGL


L e tri ne supporte pas les lignes vides : il les colle à la dernière valeur de la colonne
Je me suis sans doute mal exprimer encore. Le code ne doit pas sélectionner les lignes vides, s'arrêter à la dernière ligne non vide et dernière colonne non vide, et trier cette sélection. Et donc laisser tous ce qui est en dessous de cette ligne vide en place....

Je te rappelle que sur un TCD le tri se fait sur la première colonne mais que tu choisir ta première colonne en déplaçant le champ en première colonne par un simple déplacement à la souris
oui, j'avais bien compris grâce à toi..

Merci encore !!
 

JCGL

XLDnaute Barbatruc
Re : Tri et actualisation auto d'un TCD

Bonjour à tous,

Un essai avec une formule en G1 de chaque feuille qui compte les cellules de la colonne A qui sont numériques.
Ceci permet de limiter la plage de tri.

Malheureusement, cela n'est pas "universel".

Si tu n'as que du numerique en colonne A (et pour les données à trier) :
Code:
=SOMMEPROD((ESTNUM(A1:A101)*1))+2
Si tu n'as que de l'alphabétique en colonne A (et pour les données à trier) :
Code:
=SOMMEPROD((ESTTEXTE(A1:A101)*1))+2
Le +2 est à adapter suivant tes données

A+ à tous
 

Pièces jointes

  • JC Tri Auto sur Activate Col C.xls
    40 KB · Affichages: 33

Kiriko

XLDnaute Occasionnel
Re : Tri et actualisation auto d'un TCD

Bonsoir JCGL, et encore merci pour le temps que tu consacres à mes soucis.

Juste une question de grand ignare :
Il n'est pas possible d'inclure une formule du type :
"DECALER($A$1;;;NBVAL($A:$A);NBVAL($1:$1))"
dans le code (si oui, je ne sais pas où) pour définir "dynamiquement" le tableau sur lequel appliquer le tri ? Et en passant, si tu as encore la patience, quelle est l'utilité de 2 onglets ?
Cordialement...

EDIT :
Bonjour à tous et grand merci à JCGL et chris qui m'ont beaucoup aidé.
En continuant de fouiller un peu partout, on m'a donné le code suivant qui est "universel" et qui correspond exactement à ce que je cherchais :
Code:
=Private Sub Worksheet_Activate()
ActiveSheet.Range("A1").CurrentRegion.Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("D2") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
End Sub
Ce code tri donc automatiquement n'importe quel tableau de A1 jusqu'à la dernière colonne non vide-dernière ligne non vide sur les critères de la colonne C puis D....
Merci aussi à Nad-Dan qui m'a donné ce code...
Cordialement .
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 653
Messages
2 111 579
Membres
111 207
dernier inscrit
max008