sortir la date la plus recente en fonction d une occurence.

doody51

XLDnaute Nouveau
Bonjour a tous (mes sauveurs).

Je poste ce message car je n ai pas réussi a trouver un solution à mon problème.
en fait voila :

j ai un tableau comme celui-ci

COL B COL C COLD COL E
14-févr-12 14 27 36
17-févr-12 4 11 28
21-févr-12 11 14 24
24-févr-12 3 7 12
28-févr-12 1 10 17
02-mars-12 5 6 11
06-mars-12 23 24 27
09-mars-12 3 32 36
13-mars-12 1 10 25
16-mars-12 3 4 12

Sachant que ce tableau peut avoir plus de colonnes et beaucoup plus de lignes (mes dates commencent en 2004).

j'aurai voulu savoir si vous connaissiez un code VBA ou un formule qui pourrait me sortir la date la plus recent pour chaque chiffre.

Avec l exemple ci dessus quand je mets le chiffre 11 dans une cellule (de la meme feuille ou non) je voudrai une formule qui me sorte la date la plus recente c'est à dire ici 2 mars 2012.

Merci d'avance pour votre aide si précieuse.
 

Jocelyn

XLDnaute Barbatruc
Re : sortir la date la plus recente en fonction d une occurence.

Bonjour le Forum,
Bonjour doody51,

un essai en fichier joint, formule matricielle à valider en appuyant simultanément sur CTRL, Maj (au dessus de CTRL) et entrée.

Bonne année

Cordialement
 

Pièces jointes

  • doody51.xls
    13.5 KB · Affichages: 77

Robert

XLDnaute Barbatruc
Repose en paix
Re : sortir la date la plus recente en fonction d une occurence.

Bonjour le fil, bonjour le forum,

Une proposition VBA en reprenant le tableau de Jocelyn puisque tu n'as pas daigné mettre un exemple...

Le code :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dl As Long 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable pa (Première Adresse)
Dim da As Date 'déclare la variable da (Date)
Dim pr As Range 'déclare la variable pl (Plus Récent)

If Target.Address <> "$H$2" Then Exit Sub 'si le changement a lieu ailleurs qu'en H2, sort de la procédure
If Target.Value = "" Or Target.Cells.Count > 1 Then Exit Sub 'si H2 est effacée ou plusieurs cellules sélectionnées, sort de la procédure
dl = Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne dl éditée de la colonne 1 (=A)
Set pl = Range("B1:D" & dl) 'définit la plage pl
Set r = pl.Find(Target.Value, , xlValues, xlWhole) 'définit la recherche r (recherche la valeur exacte de H2 dans la plage pl)
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence
    pa = r.Address 'définit l'adresse de la première occurrence trouvée
    Do 'exécute
        If Cells(r.Row, 1) > da Then da = Cells(r.Row).Value: Set pr = Cells(r.Row, 1) 'si la date en colonne A de l'occurrence trouvée est suprieure à da, da égale cette date
        Set r = pl.FindNext(r) 'redéfinit la recherche (occurrence suivante
    Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe de nouvelle occurrence ailleurs qu'en pa
End If 'fin de la condition
pr.Select 'sélectionne la cellule pr
End Sub
Le fichier :

 

Pièces jointes

  • doody_v01.xls
    25 KB · Affichages: 47

Discussions similaires

Réponses
2
Affichages
533

Statistiques des forums

Discussions
312 393
Messages
2 088 006
Membres
103 697
dernier inscrit
BOUZOUALEGH