Trier des groupes de lignes par dates

Bonjour,

voici mon probleme : je dois réaliser un tableau avec dans une colonne le nom de machines, et dans une autre la date de réparation de celles-ci, comme dans l'exemple ci-dessous :

Machine 1 date1

date2

date3

Machine 2 date4

date5

date6

Machine 3 etc...

Ce que je veux faire c'est pour chaque machine mettre la date de réparation la plus récente en premier... Mon problème vient du fait que toutes les dates sont et doivent etre dans la meme colonne.

Ca n'aurait pas été un problème pour trier l'ensemble des dates d'un coup, mais la je veux trier les groupes de lignes correspondant aux machines, pour ne pas les mélanger entres elles.

j'espère que je me suis bien expliqué et que des ames charitables pourront m'aider !

Paul

Bonsoir et bienvenue

Peux-tu nous préparer un petit fichier exemple STP ?

Comment Joindre Un Fichier

A te relire

Amicalement

Nad

Bonsoir Nad, paulochon...

Trier, je ne sais pas (avec VBA, peut-être)

Mais pour mettre en avant la dernière date, voir fichier

Cordialement

32classeur17.zip (6.21 Ko)

Bonjour,

Merci de votre aide !

Nad : je suis au boulot et tous les sites comme youtube sont bloqués, mais c'est bon j'ai trouvé comment faire . Pour l'exemple, si tu veux, tu peux voir celui d'Amadeus, qui est exactement ce que je veux

Amadeus : Tu m'évites de poster un exemple (la prochaine fois que j'aurai besoin d'aide je le ferai, promis!), car le tien reflète exactement ce que je cherche. Ta solution n'est certes pas ce que je demandais, mais je trouve cela astucieux ! A défaut de trouver exactement ce que je recherche je choisirai ta solution !

Merci encore !

Paul

Bonsoir

Sur le fichier joint

En Feuil1, la première solution donnée (Formules)

En Feuil2, un bouton affecté à une macro pour tester.

La Macro est une XL4 à l'ancienne. Elle se trouve sur la Feuille Masquée "Macro1".

Si on peut le faire en XL4, on doit pouvoir le faire en VBA.

En attendant...

Cordialement

38classeur17.zip (5.28 Ko)

Bonsoir Amadéus, à tous,

En VBA sur ton fichier

Sub TriRévisions()
Dim Lg%, i%, x%
    Application.ScreenUpdating = False
    Lg = Range("b65536").End(xlUp).Row + 1
        Range("a" & Lg) = "fin"
    For i = 2 To Lg
            If Cells(x + 1, 1) = "fin" Then Exit For
        If Cells(i + 1, 1) = "" Then 'contrôle si 2 machines se suivent
            x = Cells(i, 1).End(xlDown).Row - 1
            Range(Cells(i, 2), Cells(x, 2)).Sort Key1:=Cells(i, 2), Order1:=xlDescending, _
            Header:=xlNo, OrderCustom:=1, MatchCase:=False
            i = x
        End If
    Next i
        Range("a" & Lg).ClearContents
End Sub

Amicalement

Claude

Bonsoir Claude

Je me doutais bien que tu passerais par là.

Notre ami a sa solution.

Amicalement

Bonsoir a tous,

La j'avoue que vous m'avez perdu...

Amadeus :

  • j'ai essayé de reproduire ton premier fichier, rien que la premiere colonne (écriture en grisé clair) ne marche pas, je ne vois pas ce que tu as voulu faire...
  • j'ai essayé ta macro, elle ne marche pas...

Claude :

Me pourrais-tu expliquer un peu plus s'il te plait ? Je n'ai pas besoin de bouton pour lancer le tri ? De plus je ne vois pas ou je peux modifier le code que tu m'as donnépour l'adapter a mon fichier...

Désolé mais la je suis un peu noyé :S

Merci pour tout,

Paul

Bonjour

Voyant ton nouveau message, je me suis souvenu du précédent (celui-ci)

tu me dis:

Amadeus :

  • j'ai essayé de reproduire ton premier fichier, rien que la premiere colonne (écriture en grisé clair) ne marche pas, je ne vois pas ce que tu as voulu faire...
  • j'ai essayé ta macro, elle ne marche pas...

La première colonne contient des formules matricielles. Pour qu'elles fonctionnent, il faut les valider en appuyant simultanément sur les 3 touches Ctrl+Maj+Entrée et là, Excel met les accolades.

Ce que j'ai voulu faire et que j'ai fait, c'est remplir automatiquement les lignes vides par le nom de la machine correspondante.

Quant à la Macro, elle fonctionne parfaitement (chez moi) en cliquant sur le bouton.

Cordialement

Amadeus,

En effet ca marche mieux avec ctrl+maj... Merci !

Sinon pour la macro je te joins une capture du message d'erreur... Je ne vois pas du tout a quoi ca peut etre du ! (si je fais "continue", il me met le meme message pour A11 puis ,A13 et enfin A33...)

edit :

pour mon nouveau message : comme tu vois j'ai d'autres problèmes hehe...

untitled

Bonsoir,

Tu as ajouter 2 colonnes en tête par rapport au fichier de Amadéus,

il faut adapter la ou les macros en conséquence,

on attend toujours ton fichier réel, et non une image !

Amicalement

Claude

Claude,

L'image que j'ai mise n'est pas mon fichier mais celui d'Amadeus car je voulais montrer ce qui ne va pas. Ce n'est pas que je ne veux pas vous envoyer mon fichier, mais la représentation d'Amadeus correspond tout a fait a mon cas, donc a quoi bon... Surtout que mon fichier est dix fois plus gros et en espagnol, fait avec un excel en anglais, donc j'ai vraiment pas envie de vous embeter avec ca...

A ce sujet, j'ai trouvé l'origine du message d'erreur : dans la macro il est écrit "L2C3" avec L comme Ligne, sauf qu'en anglais c'est R comme Row... Une fois tout ca changé le message n'apparait plus et ca marche ! Maintenant je fais des tests pour savoir si la macro résiste a des changements, il semble qu'elle a quelque problèmes lorsque :

  • je supprime une date de la machine 3 dans la configuration de départ, je supprime la dernière ligne dans la colonne "révisions", je relance la macro et il classe bien les dates mais il ne semble pas avoir supprimé la bonne date
  • je modifie une date dans la machine 2 et relance la macro, il me reclasse les meme dates que j;avais avant la modification...

(voir fichier pour constater mes modifications)

Je vais voir ce que je peux faire de mon coté !

Merci encore pour votre aide !

Paul

24trier-dates.xlsm (17.29 Ko)

Bonjour,

Peu importe la version et la langue, il nous faut la structure réelle,

savoir où sont positionnées les lignes et colonnes d'en-tête

avec une vingtaine de lignes anonymisées çà suffira.

sinon les macros ne marcheront pas !

Ok ?

bonne journée

Claude

Bonsoir Claude,

Désolé, je sais que je suis un peu tetu...

J'ai joint mon fichier cette fois-ci, tel qu'il est quand je l'utilise. Tu remarqueras qu'aux lignes 22 a 25 c'est la meme machine (la 13). J'ai groupé des lignes qui correspondront aux réparations les plus anciennes pour que je puisse les réduire et que ne soit visible que la dernière.

Le but est donc de classer les dates de réparation de cette machine 13 pour que la plus récente apparaisse dans la ligne qui reste visible une fois les autres réduites.

Si c'est trop casse-tete, je me satisferai de la première méthode d'Amadeus qui consiste a extraire la date la plus récente et je m'organiserai autrement.

Encore merci pour ta patience...

Paul

PS : dans ce cas la langue n'est peut-etre pas un probleme, mais dans bien d'autres je peux te garantir que ca énerve un tant soit peu

30exemple-page-5.xlsx (13.28 Ko)

Bonsoir,

Je ne vois plus le problème !

Qu'est-ce qui t'empêche de mettre la "Ref machine" quand tu entre une date ?

le tri devient alors banal,

1ère clé de tri = "Ref machine" Ascendant

2ème clé de tri = "Date" Descendant

ou alors, j'ai rien compris ou ton fichier n'est pas représentatif

Amicalement

Claude

Bonjour,

Alors ! pas de suite ?

si tu abandonne, merci de solder le poste, c'est ici

Claude

a resolu3
Rechercher des sujets similaires à "trier groupes lignes dates"