Recheches complexes sur une plage de données

christophedetroyes

XLDnaute Nouveau
Bonjour,

Je cherche à réaliser sous excel 2010 une recherche sur plusieurs critères sur une plage de cellule.
(fichier excel joint)

J'ai une plage de données avec les valeurs suivantes :
N° NOM DATE VALEUR
10000 TOTO 01/05/2012 10
10000 TOTO 03/11/2011 11
11000 TITI 01/01/2012 12
11000 TITI 01/03/2011 13
12000 TETE 05/05/2012 14
13000 TUTU 01/11/2011 15
13000 TUTU 01/03/2011 16

Je souhaite rechercher pour un agent spécifique la valeur mise à jour le 01/01/2012 ou avant !

Exemples :
pour TOTO : résultat attendu 11
pour TITI : résultat attendu 12
pour TUTU : résultat attendu 15
pour TETE : aucun résultat

donc une première recherche pour sur le numéro et ensuite sur la date

j'ai cherché du coté formule ou VBA mais je coince !

Merci pour vos conseils
 

Pièces jointes

  • exemple.xlsx
    9.1 KB · Affichages: 40
  • exemple.xlsx
    9.1 KB · Affichages: 44
  • exemple.xlsx
    9.1 KB · Affichages: 41

Staple1600

XLDnaute Barbatruc
Re : Recheches complexes sur une plage de données

Bonjour

Pourquoi ne pas simplement utiliser le filtre élaboré avec critère formulé?

Regardes dans les archives du forum (en t'aidant de la loupe en haut à droite) , tu trouveras de nombreux exemples (dont certains commis par bibi) utilisant des formules comme critéres dans un filtre élaboré. (le tout avec ou sans VBA)
 
Dernière édition:

christophedetroyes

XLDnaute Nouveau
Re : Recheches complexes sur une plage de données

Oui concernant le filtre élaboré, j'ai déjà fait. Le problème c'est que je souhaite récupérer la valeur via une fonction dans une autre feuille.

Donc je me vois bien utiliser dans une feuille la fonction VBA rechercher_valeur("10000") et récupérer par retour la valeur 11 selon les règles que j'ai fixées précédemment. J'espère être clair !
 

Staple1600

XLDnaute Barbatruc
Re : Recheches complexes sur une plage de données

Re, [EDITION=Bonjour R@chid[/EDITION]


Et alors c'est possible, non ? On peut copier le résultat d'un filtre où on veut quand on veut ;)
Essayes cette macro dans un premier temps sur ton fichier exemple
Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 29/07/2012 par Staple1600
'

[F1:G1] = Array("NOM", "DATE")
    Range("F2").FormulaR1C1 = "TOTO"
    Range("G2").FormulaR1C1 = "=""<""&DATEVALUE(""01/01/2012"")"
    Range("A1:D8").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range _
        ("F1:G2"), Unique:=False
End Sub

PS: Si tu as utilisé le filtre élaboré, pourquoi ne pas l'avoir précisé dans ton premier message?
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : Recheches complexes sur une plage de données

ReBonjour @ tous,
pour la formule en colonne H c'est plutôt,
en H2,
Code:
=SI(G2<>"";INDEX(D$2:D$8;EQUIV(MAX((B$2:B$8=G2)*(C$2:C$8<=J$1)*(C$2:C$8));(B$2:B$8=G2)*(C$2:C$8<=J$1)*(C$2:C$8);0));"")
@ valider par Ctrl+Maj+Entree
@ tirer vers le bas
@ micalement
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
564

Statistiques des forums

Discussions
312 800
Messages
2 092 231
Membres
105 297
dernier inscrit
Cadnov