Excel : RechercheV sur cellule avec fonction

Bonjour à tous,

Je souhaite effectuer la fonction "rechercheV" sur une cellule comprenant une formule droite(A1;10). La fonction rechercheV ne semble pas fonctionner.

La configuration de mon fichier excel:
Colonne A: une référence de type P0000000000 (une lettre suivie de 10 chiffres)
Colonne B: la fonction "droite(A1;10)" pour ne renvoyer que les 10 chiffres
Colonne C: La fonction "RECHERCHEV(B1;'sheet2'!A:B;2;FAUX)"

La feuille sheet 2 contient les références de 10 chiffres sans la lettre.

Est-il possible d'effectuer une recherche sur une partie de la cellule et non pas la cellule entière? (un combiné de recherchev() et droite() en quelque sorte)

Ou bien de paramétrer la focntion recherchev afin de pouvoir effectuer uen recherche sur une cellule comprenant déjà une fonction?

NB: remplacer Faux par Vrai dans la fonction recherchev ne me donne pas le bon résultat

Merci beaucoup par avance

4 réponses

  1. Contributeur
    Bonjour

    il est possible que votre liste de code en sheet2 (donc sans la lettre) soit des valeurs numériques alors que DROITE(A1;10) vous renvoie du texte à partir de la réf avec lettre
    Essayez de transformer votre formule en B1:
    =DROITE(A1;10)*1 qui devrait transformer le résultat en num.

    vous pouvez bien sur utiliser directement le code dans la formule RECHERCHE:
    =RECHERCHEV(DROITE(A1;10)*1;'sheet2'!A:B;2;0)

    veillez aussi à tout hasard, à ce que votre code initial avec lettre ne comporte pas de blancs qui pourrait perturber l'édition de droite

    revenez si ça ne marche toujours pas

    crdlmnt

    Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
    3
    1. Merci beaucoup, cela fonctionne très bien!

      Existe-t-il une fonction pour éviter #valeur dans les cases vides comme c'est le cas avec #NA et la fonction SI(ESTNA()) ?

      Existe-t-il également un moyen de supprimer la lettre en affichage? (càd que la valeur de la cellule est bien P0000000000 mais qu'elle affiche uniquement 0000000000)

      Je ne trouve pas l'option dans le format de cellule...

      Cordialement,
      0
      1. J'ai trouvé la réponse à ma première question pour ceux que cela interesse:
        =SI(ESTERREUR(RECHERCHEV(DROITE(A1;10)*1;'sheet2'!A:B;2;FAUX));"";RECHERCHEV(DROITE(A1;10)*1;'sheet2'!A:B;2;FAUX))

        Je suis toujours preneur d'une réponse pour ma 2ème question, je n'arrive pas à modifier les propriétés d'affichage avec du texte, cela ne fonctionne qu'avec des valeurs numériques on dirait...

        Merci d'avance
        0
    2. Contributeur
      Bonjour Benz et Vaucluse

      en mettant la cellule au format nombre- nombre personalisé; type
      "P"0000000000
      0
      1. Contributeur
        bonjour michel

        je crois que c'est le contraire que voudrait faire Benz, si je ne me trompe pas, c'est à dire entrer P100000000 et ne pas voir le P, ... mais ça, moi, je ne sais pas faire à priori.

        Par contre, si c'est pour l'utilisation de la formule recherche, effectivement, afficher le P à partir d'un format tel que tu l'indiques permet de chercher les valeurs numériques sans passer par l'artifice DROITE. C'est peut être la solution pour Benz

        crdlmnt
        0
      2. Merci pour ta contribution michel_m, mais ce n'est pas ce que je recherche
        Vaucluse a raison, je cherche à "entrer P100000000 et ne pas voir le P"...

        Je ne souhaite pas m'en servir pour la fonction recherche, il s'agit juste d'esthétisme afin d'avoir les références qui correspondent exactement aux listings

        Cela semble impossible alors?

        Merci à vous deux en tout cas
        0
      3. Contributeur
        excusez moi, l'heure de la sieste est sans pitié!

        je regarde + tard mais ca va faire cher (image!) l'esthétisme
        0
    3. Contributeur
      allez, un peu d'esthétisme dans ce monde de brute:
      colonns B1:B20 a adapter
      Sub esthetique() 
      For lig = 1 To 20 
           If Left(Range("B" & lig), 1) = "P" And Len(Range("B" & lig)) = 11 Then 
                Range("B" & lig).Characters(Start:=1, Length:=1).Font.ColorIndex = 2 
           End If 
      Next 
      End Sub

      Michel
      0