Afficher une texte suivant résultat de RECHERCHEV

Bonjour,

Tout d'abord Meilleurs vœux pour 2014 et longue vie au forum ,

Sur la formule suivante :

=SIERREUR(RECHERCHEV(J35;'\\RESEAU\[BDDA.xls]BDDA'!$AB$2:$AB$65535;1;FAUX);"Absent")

Je voudrais afficher un texte "Présent" , s'il trouve la valeur exacte et "Absent" s'il ne trouve pas la valeur exacte.

Le résultat de la cellule trouvée étant trop long c'est pour cela que je veux afficher "Présent".

J'intègre cette formule dans mon fichier qui est généré (je ne peux donc pas enregistrer de code dans celui ci) par un code VBA situé dans un fichier MENU.xlam et je recopie cette formule par le VBA suivant :

NbLg = Range("B" & Rows.Count).End(xlUp).Row

Range("K2:K" & NbLg).FormulaLocal = "=SIERREUR(RECHERCHEV(J2;'\\RESEAU\[BDDA.xls]BDDA'!$AB$2:$AB$65535;1;FAUX);""Absent"")".

En bref, comment afficher dans une cellule un texte différent de la valeur recherché s'il la trouve et s'il ne la trouve pas.

Merci à tous.

Zyglur

Bonjour,

A tester

=SI(SOMME(SI('\\RESEAU\[BDDA.xls]BDDA'!$AB$2:$AB$65535=J35;1;0))>0;"Présent";"Absent")

Formule à valider par CTRL+MAJ+Entrée.

A+

Bonjour,

Tu peux utiliser une fonction personnalisée en VBA, en reproduisant la fonction de feuille 'RechercheV'.

Option Explicit
Public Function A_P(Valeur, Plage As Range, Col As Integer)
Dim c As Variant
    A_P = "Présent"
    c = Application.VLookup(Valeur, Plage, Col, 0)
    If IsError(c) Then A_P = "Absent"
End Function

Puis l'utiliser dans ton code. Soit à tester:

Range("K2:K" & NbLg).FormulaLocal = A_P(J2,'\\RESEAU\[BDDA.xls]BDDA'!$AB$2:$AB$65535,1)

Frangy : En fait il ne s'agit pas de valeur chiffre, mais de texte que je recherche.

Jean-Eric : En modifiant des virgule par des point virgules, et en rajoutant ;FAUX en fin de formule, il ne m'affiche que #VALEUR.

Range("K2:K" & NbLg).FormulaLocal = "=A_P(J2;'\\RESEAU\[BDDA.xls]BDDA'!$AB$2:$AB$65535;1;FAUX)"

J'ai aussi recopier intégralement dans mon fichier MENU qui génère mon fichier destination :

Public Function A_P(Valeur, Plage As Range, Col As Integer)
Dim c As Variant
    A_P = "Présent"
    c = Application.VLookup(Valeur, Plage, Col, 0)
    If IsError(c) Then A_P = "Absent"
End Function

Si je recopiais ton code , il ne se passait rien.

bonjour

eventuellement ainsi

'=SI(ESTERREUR(RECHERCHEV(G2;talplge;2;0));"absent";"present")

cordialement

Merci à Fangy et à Jean-Eric de s'être penché sur mon problème.

Merci Tulipe_3 ca fonctionne impeccable. C'est une formule dont je vais pas mal abuser

Bonne fin de journée à tous

Rechercher des sujets similaires à "afficher texte suivant resultat recherchev"