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!!
A voir également:

3 réponses

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
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
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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