Rechercher la date la plus récente dans Excel

dilo0169 -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

je travaille sur un fichier Excel de ce format la (mon vari fichier contient 3542 lignes) :

N° moule Date utilisation
1 10/02/1999
1 15/03/2000
2 03/01/1999
2 01/03/2001
3 01/01/1999
3 01/04/2003
3 01/05/2003
3 01/12/2005
4 01/02/2006

Pour un moule donné, j'ai plusieurs dâtes d'utilisation. et je souhaite extraire uniquement la dernière date d'utilisation.
j'avais pensé parcourir mon tableau et tant que mon numéro de moule est le même comparer la date avec la précédente. en conservant en mémoire la plus récente : boucle while et if indentées
Je débute avec les macros Excel et donc j'ai un peu de mal à m'en sortir.

Merci de votre aide!!
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    bonjour

    une simple MFC suffit :

    tes dates sont de A2 à A1000 adapter la plage
    selectionner la plage
    Menu Format, Mise en Forme Conditionnelle
    la Formule est : =Max($A$2:$A$1000)=$A2
    mettre le format désiré en appuyant sur la bouton
    tout valider
    0
  2. Janos Audron Messages postés 84 Statut Membre 27
     
    --nota: je ne connait pas du tout les macros sur excel, ni nulle part d'ailleurs--

    je remarque que sur ton exemple, les dates sont toujours classées de la plus vieille à la plus récente...

    Si tel est le cas sur ton 'vrai' document, autant ne récupérer que la dernière entrée de ton moule, non?

    Sinon je pense que en jouant avec les filtres auto c'est jouable (2 filtre, le 1er récupère le n° de moule, le 2eme la dernière entrée, ca revient a peu près au même que ci dessus....)

    En espérant t'avoir aidé
    0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Une solution par macros...
    Sub DerDate()
    Dim Lig As Long
    Dim memo As Date, MemLig As Long
        For Lig = 10 To Range("A65536").End(xlUp).Row
            If DateValue(Cells(Lig, 1)) > memo Then
                memo = DateValue(Cells(Lig, 1))
                MemLig = Lig
            End If
        Next Lig
        'Mettre le résultat en B2
        Cells(2, 2) = memo
        'La ligne en B3
        Cells(3, 2) = MemLig
    End Sub

    A+
    0