Tri dans un tableau avec ajout de données

Bonjour,

Lors de la mise en place d'un système de maintenance GMAO sur excel je suis amené à trier un tableau ( contenant un historiques avec plusieurs colonnes ( Employé/ Date/ activité... )

J'ai fait des macros pour trier le tableau selon différentes consignes ( par ordre chronologique, par ordre alphabétique des employés )...

ça marche très bien pour le moment mais le problème c'est que tout les jours des données se rajoutent au tableau et le tri ne prends pas en compte ses nouvelles valeurs ( juste les anciennes ).

Pour des raisons de confidentialité je ne peux pas mettre mon classeur excel...

Je mets quand meme le code d'une macro en exemple...

Pouvez vous m'aider ? Merci

Je pense que le problème se situe dans la sélection des données ( je clique sur la case tout en haut à gauche entre le 1 et le A ), en effet se bouton prends toutes les données à un instant t ( au moment ou la macro est créée ) mais a l'instant t+1 les données qui ont été rajoutés ne sont pas prises en compte..

Sub TriHistoriqueChristophe()

'

' TriHistoriqueChristophe Macro

'

'

Sheets("HistoriqueOT").Select

Cells.Select

ActiveWorkbook.Worksheets("HistoriqueOT").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("HistoriqueOT").Sort.SortFields.Add Key:=Range( _

"B2:B9"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _

"Christophe", DataOption:=xlSortNormal

ActiveWorkbook.Worksheets("HistoriqueOT").Sort.SortFields.Add Key:=Range( _

"A2:A9"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _

xlSortNormal

With ActiveWorkbook.Worksheets("HistoriqueOT").Sort

.SetRange Range("A1:R9")

.Header = xlYes

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

Range("A2").Select

End Sub

Le problème, c'est simplement que la macro débute, fait le job, termine le job, et repart se coucher.

Si on ajoute de nouvelles données sans soliciter à nouveau la macro, rien ne va se passer.

Alors, il est toujours possible d'appeler la macro en permanence (à chaque ajout de donnée), mais cela ferait ramer le fichier.

Sinon, on peut aussi utiliser tous simplement le tri des filtres, mais là encore, il faudrait le relancer à chaque fois que l'on veut refaire le tri.

Enfin, il est possible de le faire par les formules (qui elles, se remettent à jour en permanence) :

  • à chaque ligne, on fait une formule pour trouver son rang : typiquement, on compte le nombre de lignes dont la valeur est supérieure : NB.si(plage;">"&moi)
  • dans un autre tableau, on appelle la ligne 1, puis sur la ligne d'en dessous la ligne n°2, etc .. Elles arrivent alors dans l'ordre...
Et cela change dynamiquement à chaque ressaisie, c'magique.

Merci de ta rapide réponse !

Je crois que tu n'as pas compris exactement le problème désolé j'ai du mal exprimer...

J'ai des boutons ( auquels sont associés des macros ) par exemple :

  • trier selon la date
  • trier selon l'ordre alphabétique

Et justement a je veux que a chaque fois que je souhaite retrier je clique sur le bouton...

Seulement la macro, quand je la programme, elle ne prends qu'une certaine base de donnée qu'elle va classer.

Quand je rajoute des données au tableau, la macro ne la prends simplement pas en comtpe...

Voila j'espère que je me suis fait comprendre et j'espère que c'est pas moi qui ne t'ai pas compris :p

Merci encore !

Ah, ben, dans ce cas, il suffirait d'aller rechercher toutes les lignes à trier.

Le plus simple, je dirais, c'est de mettre toutes les données dans un tableau, et que la macro prenne tout le tableau :

quand on saisi des trucs en plus dans le tableau, il va s'agrandir tout seul, et c'est sur une plage plus grande que la macro va tourner.

Bonjour,

Tu peux peut-être commencer par mettre tes données sous forme de tableau (dynamique).

Cette fonctionnalité existe depuis la version 2007.

Cdlt.

L'idée me semble interressante, seulement j'ai besoin que les données se mettent à la suite ( j'ai pour cela fait une maccro qui detecte la premiere case non vide d'une colonne et qui fait le collé dessus ).

En fait j'ai une feuille ou je rempli un bon de travail ( je rentre le nom de la personne, la date... ) ensuite j'ai mis un bouton associé à une macro qui fait un copié collé de ses informations dans une autre feuille ( archives ). Je ne rempli pas directement le tableau...

Votre solution sera adaptée à mon cas ? Il est possible de faire un copié coller vers un tableau, ou les données se mettent les unes a la suite des autres à l'aide d'une maccro ?

Rebonjour !!!

Je fais deux macro :

La première qui sélectionne toutes les cellules

La deuxième qui fait le tri

Ensuite j'en fait une troisième qui lance les deux à la suite...

Et les données rajoutées sont toujours prises en compte parceque la macro#1 refait la sélection sur la page entière !

Merci énormément pour vos réponses et a bientot

aucun avatar Foxtrot

Nouveau venu

Nouveau venu

Messages: 4

Inscription: Aujourd’hui, 16:07

Version Excel: 2013

Rechercher des sujets similaires à "tri tableau ajout donnees"