Tri automatique Tableau par VBA

Bonjour à tous,

Je peaufine la mise en place de tableaux que je devrais mettre à disposition.

J'aimerai que sur le tableau joint, le tri automatique se fasse sur la colonne A (du plus ancien au plus récent),

Le tableau se rempli par un copier coller valeur, et donc dés que la cellule A1 est modifier par ce copier coller, le code évènementiel viennent faire le tri (pour éviter à l'utilisateur de faire toujours cette manip),

Merci d'avance pour votre aide,

Cordialement,

68tri-auto.xlsm (26.14 Ko)

bonjour

d'où viennent les données et comment sont-elles "collées" ?

car il est possible que ta question soit non pertinente, en "important" ou requêtant les données et effectuant le tri à ce moment.

Salut Massari,

Un première essai ci-joint !

Restant à ta disposition

98pour-massari.xlsm (34.23 Ko)

Bonjour Jmd,

Les données viennent d'une autre feuille Excel qui font juste l'objet d'un copier coller,

Pas d'import ni de requête,

Cordialement,

Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
    With Me.ListObjects(1)
        If Not Intersect(Target, .DataBodyRange.Columns(1)) Is Nothing Then
            .Range.Sort key1:=.Range.Cells(1, 1), order1:=xlAscending, Header:=xlYes
        End If
    End With
End Sub

Cordialement.

Les données viennent d'une autre feuille Excel qui font juste l'objet d'un copier coller,

Pas d'import ni de requête,

re à tous

c'est ce collage manuel qu'il faut retravailler et non mettre des rustines sur une méthode "papier/crayon"

Merci à tous pour vos retour,

@Juice la solution apportée ne permettait plus de faire copier coller valeur sur le tableau !, cependant effectivement une modification manuelle des cellules de la colonne A avait pour effet par le biais de votre macro un tri de mes données, mais merci pour votre reour,

Je vais retenir mais comme bien souvent en matière VBA la solution de @Mferrand, merci votre code événementiel fonctionne à merveille

Pouvez vous me l'expliquer même si je comprends sa finalité,

Cordialement,

Le souci JMD c'est comment retravailler le collage manuel?,

Les données sont saisies par un utilisateur qui se fiche complètement de les saisir dans l'ordre chronologique (parfois oui, parfois non), et un autre utilisateur qui doit se servir de ces données pour travailler,

A défaut de formation du premier utilisateur lol, j'essaye de trouver des solutions pertinentes, et je suis sûr que le code apporté par Mferrand en est une,

Cordialement,

re

le principe d'Excel c'est la gestion de données

une saisie dans A

un "report" dans B et dans C et dans D...

il existe de multiples façons de faire ces reports

  • collage manuel
  • ressaisie manuelle (oui, ça existe souvent ! )
  • VBA
  • =
  • import
  • requête
...

pour les cas simples, j'adore les = C'est à la portée de tous et facilement modifiable au besoin.

pour tous les autres, Excel possède une fonction géniale : menu Données, Obtenir. On obtient et encore mieux : on peut "traiter" les données en cours de route, par exemple les trier. On peut faire des milliers d'autres traitements. L'utilisateur a juste besoin de cliquer "actualiser" et la magie opère.

Oui Jmd,

je sais qu'on peut importer des données de différentes manières ("query" notamment grâce à ton apport sur ce site, power pivot ...) cependant la feuille du premier utilisateur à été mis en place par le siège, et n'ayant pas l'autorisation de la modifier, je m'adapte.

Merci pour tes précisions

Cordialement,

@jmd : Qu'as-tu contre le fait que le tri se fasse automatiquement ?

L'utilisateur fait juste un noeud au mouchoir-VBA, lequel en temps opportun ne fais que taper sur l'épaule d'Excel, et c'est toujours Excel qui fait le tri !

Après tu sais que je suis en désaccord avec ton analogie papier-crayon, d'abord parce que tu tentes toujours de la dévaloriser alors que l'association papiercrayon a constitué une révolution technologique certainement plus importante que la roue ou le feu. On se sert toujours de roues, de feu, et l'écran d'ordinateur-associé à de la mémoire n'est rien d'autre qu'une extension du papier-crayon !

Ensuite parce que si le papier-crayon sous ses diverses formes et avatars est un outil dont il est difficile de se passer pour des analyses évoluées, le mode d'approche de VBA est beaucoup apparenté au niveau Maternelle : manipulation de bûchettes, gomettes, etc., ce qui est relativement logique car on est plus proche ainis d'une approche binaire...

Cordialement.

@Massari : La procédure est simple !

Le tri est effectué par la méthode Range.Sort (celle que l'enregistreur ne connait plus !) qui est la plus simple à mettre en oeuvre dans la grande majorité des cas de tri (elle tien en une ligne...) alors que la méthode Worksheet.Sort privilégiée par l'enregistreur demeure beaucoup plus complexe : on définit les caractéristiques de l'objet Sort avant de l'appliquer, et les critèress font appel à la définition d'objets SortFields...

La plage sur laquelle on applique le tri est le tableau Excel : on met donc sous With ledit tableau, on teste comme souvent dans une évènementielle Change s'il y a intersection entre Target et la plage surveillée (qui est la première colonne de données du tableau .DataBodyRange.Columns(1), et si test positif on applique le tri à la plage que constitue le tableau .Range.

Cordialement.

Merci beaucoup @Mferrand pour votre explication

Cordialement,

re à tous

salut MFerrand

1/

je propose un tri automatique. Je ne comprends donc pas ton introduction

2/

tu sais que AUCUN progiciel ne fonctionne comme du papier et un crayon. En sous-jacent il y a une base de données. Ensuite une couche de programme qui tente plus ou moins d'imiter le papier.

je propose exactement pareil

mais comme c'est moins pratique avec Excel, alors ça ressemble moins au papier. Par exemple Excel permet une feuille de longueur quasi-infinie (par rapport aux besoins courants) le papier ne peut pas.

et aussi, on n'est pas des développeurs en équipes : nos développements Excel ne seront jamais fiables s'ils sont complexes. Dès lors, il faut alléger au maximum les formules et VBA, et donc il ne faut pas trop viser la similitude avec le papier, similitude qu'on ne peut atteindre qu'avec des complications.

ici Excel suffit, nul besoin de VBA

même les applis de Dan...

https://forum.excel-pratique.com/viewtopic.php?f=2&t=113896

@jmd : mon analogie sur le papier-crayon s'est limitée à écran-mémoire de l'ordinateur, je n'y ai pas inclus le processeur...

Je n'ai pas vu que tu proposais un tri automatique, soit sans intervention directe de l'utilisateur. Si c'est le cas, il faudrait préciser sur quoi il repose car je pense ne être le seul à ne pas l'avoir compris...

Rechercher des sujets similaires à "tri automatique tableau vba"