Recherche filtrée avec un test et entre deux feuilles

8exemple.xlsm (20.34 Ko)

Bonjour,

Je bloque sur la mise en place d'un traitement qui me permettrait de faire une recherche filtrée entre deux feuilles et avec également un test.

Je m'explique, tout d'abord, j'ai 2 bases de données contenant des adresses et pour chaque ligne un nombre de logements. La seconde possède en plus un champ renseignant son code parcelle. C'est donc ce champs que je veux ajouter à ma BD 1.

Sur ma première feuille (où se trouve la BD 1), je souhaite après avoir cliqué sur un bouton, lancer un traitement qui recherche pour chaque adresse de cette feuille, parmi les adresses strictement similaires celle pour laquelle la différence en nombre de logements est la moindre et renvoie le code parcelle correspondant en colonne C.

Etant donné le grand nombre d'adresses présentent en BD 2 (dans mes données pas dans cet exemple bien sur !), j'aimerai que le traitement identifie dans un premier temps le code INSEE pour faire la recherche de l'adresse uniquement sur les adresses de cette commune et non sur l'ensemble.

Dans mes premiers essais, j'avais fais cela à partir d'une fonction. Je souhaite utiliser dorénavant un bouton afin de figer les résultats dans les cellules et éviter qu'Excel relance fréquemment les formules pour chaque cellule ...

Voici le code de cette fonction qui recherche pour le coup sur l'ensemble des adresses en BD2 quel que soit leur code INSEE :

Function Recherche_CP_probable(ByVal Adresses_BD2 As Range, ByVal Adresse_a_trouver As String, ByVal Nb_logs_a_trouver As Long) As String

Dim Cellule_a_tester As Range
Dim Ecart_en_cours As Long

Recherche_CP_probable = "pas de lien"
Ecart_en_cours = 1000000

For Each Cellule_a_tester In Adresses_BD2
    If Cellule_a_tester = Adresse_a_trouver Then
        If Abs(Cellule_a_tester.Offset(0, 2) - Nb_logs_a_trouver) < Ecart_en_cours Then
            Ecart_en_cours = Abs(Cellule_a_tester.Offset(0, 2) - Nb_logs_a_trouver)
            Recherche_CP_probable = Cellule_a_tester.Offset(0, 1)
        End If
    End If
Next Cellule_a_tester

End Function

Voici un fichier exemple :

8exemple.xlsm (20.34 Ko)

Si je n'ai pas été clair sur un point n'hésitez pas à me demander plus de précisions.

Merci beaucoup

Rechercher des sujets similaires à "recherche filtree test entre deux feuilles"