Rechercher plusieurs valeurs dans une plage de cellules

Egruat

XLDnaute Occasionnel
Bonjour,

Dans une colonne de date (année uniquement), je recherche en même temps plusieurs dates. Par exemple, 1999, 2002, 2005, 2011.

Existe-il une fonction me permettrant d'effectuer une recherche simultanée de plusieurs valeurs dans une plage de cellules donnée ?

Merci de votre aide !
 

Robert

XLDnaute Barbatruc
Bonjour Egruat, bonjour le forum,

Peut-être comme ça :

VB:
Sub Macro1()
Dim TA() As Variant 'déclare la variable TA (Tableau des Années)
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim COL As Integer 'déclare la variable COL (COLonne)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)

TA = Array(1999, 2002, 2005, 2011) 'définit le tableau des années TA
Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
COL = 1 'définit la colonne (à adapter à ton cas)
DL = O.Cells(Application.Rows.Count, COL).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne COL de l'onglet O
TV = O.Range(O.Cells(1, COL), O.Cells(DL, COL)) 'définit le tableau des valeurs TV
For J = 0 To UBound(TA, 1) 'boucle 1 : sur toutes les années J du tableau des valeurs TA
  For I = 1 To UBound(TV, 1) 'boucle 2 : sur toutes les lignes I du tableau des valeurs TV
  'si les années coïncident, message (tu n'as pas précisé ce que tu voulais que le code fasse...)
  If TV(I, 1) = TA(J) Then MsgBox "Année " & TA(J) & " trouvée dans la ligne " & I & " !"
  Next I 'prochaine ligne de la boucle 2
Next J 'prochaine date de la boucle 1
End Sub

[Édition]
Bonjour Job, nos posts se sont croisés...
 

zebanx

XLDnaute Accro
Re-

Je te remercie de l'information et d'avoir regardé la formule.

Bizzarement, la formule ne fonctionne pas avec des points sur mon PC. Que ce soit avec des chiffres ou des lettres, il faut utiliser "\" et non le "."
Ca doit être ma vieille version d'excel.
Mais bon, ta formule me convient et elle fait mieux.

Bonne soirée
@+
 

Egruat

XLDnaute Occasionnel
Merci beaucoup !!! La formule =SOMMEPROD(SOMME.SI(A:A;{1999;2003;2015;2018};B:B)) fonctionne bien.

Si maintenant je cherche à, non pas additionner les valeur de la colonne B mais à mettre une valeur fixe comme 10 par exemple si les valeurs 1999, 2003, 2015 et 2018 sont rencontrées dans la colonne A ?
 

Discussions similaires

Haut Bas