Recherche avec deux boucles VBA

Webperegrino

XLDnaute Impliqué
Supporter XLD
Bonjour Le Forum,
Cela fait deux jours que je bloque sur une programmation qui pourtant n'est pas compliquée.
J'ai essayé avec deux méthodes incluses dans le fichier que je vous joins, mais en vain.
Pouvez-vous m'aider à obtenir les bons résultats dans la dernière colonne selon la date choisie dans la cellule A11 de la feuille LISTE ?
Merci
Webperegrino
 

Pièces jointes

  • Recherche avec deux boucles.xls
    34 KB · Affichages: 38

Webperegrino

XLDnaute Impliqué
Supporter XLD
Le Forum,
Bonjour JHA et merci pour cette première proposition.
Malheureusement, devant travailler sous Excel 2003-2007 il ne m'est pas possible d'exploiter la fonction que vous proposez.
Cela ne m'affiche pas les résultats souhaités mais une série de "#NOM?".
De mon côté je continue mes recherches également.
Cordialement,
Webperegrino
 

JHA

XLDnaute Barbatruc
Re bonjour,

Effectivement, la fonction sierreur() n'est pas connue. tu peux essayer:
=SI(ESTERREUR(INDEX(FDC!$H$3:$H$13;EQUIV(LISTE!$A$11&LISTE!$B10;FDC!$B$3:$B$13&FDC!$E$3:$E$13;0)));"";INDEX(FDC!$H$3:$H$13;EQUIV(LISTE!$A$11&LISTE!$B10;FDC!$B$3:$B$13&FDC!$E$3:$E$13;0)))
toujours validation en matricielle.

JHA
 

Pièces jointes

  • Recherche avec deux boucles.xls
    44 KB · Affichages: 35

Webperegrino

XLDnaute Impliqué
Supporter XLD
Bonjour Le Forum, JHA et Pascal82,
Une fois appliquée dans mon fichier destination, et avec en plus quelques lignes supplémentaires, la proposition de Pascal82 continue de fonctionner à merveille.
La solution de JHA, placée elle aussi dans mon fichier destination pour un travail similaire sur une autre feuille, demeure plus capricieuse. Je vais l'étudier plus profondément car intéressante et formatrice également pour moi, et corriger une éventuelle erreur ou un oubli car elle fonctionne parfaitement dans le fichier transmis en exemple par JHA.
En tout cas merci à vous deux pour votre aide qui m'est très, très précieuse.
Bien cordialement,
Webperegrino
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Une autre possibilité via une fonction personnalisée. Formule à placer en E10 puis à tirer vers le bas :
VB:
=Date_Site($A$11;B10;FDC!$B$3:$H$22)
ou bien avec le tableau de recherche défini par un nom dynamique tabFDC :

VB:
=Date_Site($A$11;B10;tabFDC)

Le code:

VB:
' ----------------------------------------------------------------------------
' FONTION Date_Site(xDate As Date, xSite, xPlageref As Range)
'   xDate est la date à rechercher (en général une cellule en référence absolue)
'   xSite est le site à trouver
'   xsite est la plage de recherche (en général une plage en référence absolue)
'       1ère colonne de la plage : les dates
'       4ème colonne de la plage : les sites
'       7ème colonne de la plage : les valeurs à retourner
' ----------------------------------------------------------------------------

Function Date_Site(xDate As Date, xSite, xPlageref As Range)
Dim T, i&
  Date_Site = "": T = xPlageref.Value2
  For i = 1 To UBound(T)
    If T(i, 4) = xSite Then
      If T(i, 1) = xDate Then
        Date_Site = T(i, 7)
        Exit Function
      End If
    End If
  Next i
End Function
 

Pièces jointes

  • Webperegrino-recherche 2 crit- v1.xls
    48 KB · Affichages: 46
Dernière édition:

Discussions similaires

Réponses
3
Affichages
193

Statistiques des forums

Discussions
312 169
Messages
2 085 911
Membres
103 033
dernier inscrit
thazet