Excel Recherchev en mieux

Résolu
Bonjour,

J'utilise la fonction recherchev car j'ai une liste de commune (176 exactement) et une deuxième liste de commune qui n'est pas écrite tout à fait pareil :

Ex : 1ere liste : SAINT ETIENNE ----> 2eme liste : ST ETIENNE etc..

Il n'y a pas beaucoup de différence mais la fonction recherchev (x;x;x;VRAI-> approximatif) ne trouve pas la bonne correspondance (même jamais) j'ai l'impression qu'il commence au début de la liste et que le premier qui ressemble un peu près il s'arrête.

Si vous pouvez m'aider,

Cordialement,

9 réponses

  1. Salut,

    La fonction RECHERCHEV n'affiche que la première valeur trouvée, dans le cas de réponse multiple plusieurs possibilités avec la syntaxe Index par exemple mais le mieux serait d'avoir ton fichier ou un exemple de fichier pour écrire une formule adaptée. tu peux joindre ton fichier avec ce lien

    https://www.cjoint.com/
    0
    1. Re,

      on a bien ton classeur mais tu n'as qu'une liste alors qu'il était question de plusieurs listes.
      et si pour ma part j'ai bien compris, plusieurs noms identiques pouvaient exister.
      dans le fichier que tu as joint que veux tu faire ?
      A+
      Mike-31

      Une période d'échec est un moment rêvé pour semer les graines du savoir.
      0
      1. Alors en faite : J'ai une liste de commune (a droite dans le fichier) et j'ai des noms de commun (à gauche) qui sont tapé à la main par des personnes différentes. Le problème c'est qu'aucune personnes ne l'écrit pareil et je voudrais faire en sorte de faire un lien automatique entre ses 2 écriture.

        ex:

        personne 1 : Saint genis
        personne 2 : ST GENIS
        personne 3 : ST-GENIS
        personne 4 : SAINT-genis

        Liste de commune : SAINT GENIS

        RechercheV(X;X;X;VRAI) ne fonctionne pas.

        Merci d'avance !
        0
        1. Contributeur
          Bonjour
          1° message pas passé!
          peut être quelque chose à exploiter
          vous pouvez trouver comment est écrit le 1° nom dans la liste avec une recherche partielle de texte
          soit pas exemple pour trouver la façon don est écrite le ^premier St Genis dans une colonne A:
          =RECHERCHEV("*genis*";A:A;1;0)
          le texte entre guillemets + astérisques n'est pas sensible à la casse et vous renvoie le premier texte de la liste qui contient Genis quelque soit la façon dont il est écrit, ainsi que le texte qui le complète.

          crdlmnt

          Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
          0
          1. Super ça marche nikel, mais
            je fait comment vu que j'ai 177 commune etplein de facon différente de l'écrire^^...
            0
            1. Contributeur
              Ben difficile de vous répondre vu qu'on ne sait pas ce qu'il faut obtenir en final!
              ??
              0
            2. Dans ce fichier https://www.cjoint.com/?3CDkkyYqZgl

              La colonne I est la liste des communes standard.

              J'ai écrit deux exemple : cellule "valeur brut" que n'importe qui peut écrire n'importe comment (ou presque) et je cherche à faire une recherche dans cette liste (en I) pour que dans la cellule "valeur cherché" j'ai la bonne écriture (celle de la colonne I)

              ^^ dsl si c'est incompréhensible
              0
          2. Contributeur
            Bonjour,

            Ne serait-il pas envisageable qu'au lieu de faire saisir par l'utilisateur le nom d'une commune (qui sera orthographiée différemment d'un utilisateur à l'autre), de lui afficher une liste déroulante des 177 communes possibles ?
            0
            1. Si maintenant ça marche comme ça.

              Mais j'ai des centaines d'ancienne affaire qui ont été rentré à la main.

              Et je ne peu pas les modifier à la main les anciennes.

              Voilà pourquoi je me prend la tête.
              0
            2. Contributeur
              alors il faudra passer par une macro, (ce n'est pas dans mes compétences) à moins que la solution ci joint puisse vous suffire, c'est une cote mal taillée qui permet de rechercher une liste de noms à partir d'un nombre de lettres variable en fin du nom cherché,, et au final de trouver celui qui correspond à ce que vous cherchez.
              Mais avant de l'appliquer, il faut débarrasser votre liste en I des tirets qui empêchent de traiter un texte assez long, soit donc:
              sélectionner colonne I
              crtl+h
              remplacer
              en haut le tiret
              en bas le blanc
              https://www.cjoint.com/?BCDrqcGZX5T
              crdlmnt
              0
          3. Re,

            Bonsoir mon ami Vaucluse et merci d'avoir pris le relai, je me suis absenté.
            Une proposition avec liste déroulante qui s'adapte en fonction de la première lettre saisie en majuscule ou minuscule

            https://www.cjoint.com/?BCDxlP5avrC
            0
            1. Re bonjour,

              Merci pour votre aide, du cou j'ai écrit un code qui compare les noms des communes:

              Public Function compare(aa As String, bb As String)

              ma = Application.WorksheetFunction.Max(Len(aa), Len(bb))

              b = 0

              For a = 1 To ma

              If Right(Left(LCase(aa), a), 1) = Right(Left(LCase(bb), a), 1) Then b = b + 1

              If Left(Right(LCase(aa), a), 1) = Left(Right(LCase(bb), a), 1) Then b = b + 1

              Next

              compare = b

              End Function

              J'ai fait des tests, à chaque fois la valeur max de b tombe sur la commune recherché !

              merci bien en tout cas @ +
              0