Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Recherche V

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,

Je dois vraiment avoir les neurones fatigués ce matin car depuis 6 h ce matin, je n'arrive pas à faire fonctionner ma petite recherche V

Je voudrais vérifier, avec la Recherche V, que mon n° de téléphone en G3 "33000000001" est bien en feuille "Récap"
J'ai fait : "=SIERREUR(RECHERCHEV(G3;Récap!G$3:G$16;0);"")"

Bon sang, pas moyen d'y arriver Grrr !!!

Je joins un petit fichier test.
Pourriez-vous m'aider ?
Je vous en remercie...
 

Pièces jointes

  • rechercheV test.xlsm
    25.4 KB · Affichages: 11
Solution
Lionel,
Regardez cette PJ avec la même formule que proposée.
En colonne J avec un nb.si je vérifie si le numéro existe ou pas.
En colonne L je regarde la cohérence entre la colonne H et la colonne J.
VB:
Col H : =SIERREUR(RECHERCHEV(G2;Récap!G$2:G$100000;1;FAUX);"Y'a Pas")
Col J : =SI(NB.SI(Récap!G:G;G2)>0;"Existe";"N'existe pas")
Col L : =SI(ET(H2="Y'a Pas";J2="Existe");"ERREUR";SI(ET(H2<>"Y'a Pas";J2="N'existe pas");"ERREUR";"ok"))
M1    : =NB.SI(L:L;"ERREUR")  Donne le nombre d'erreurs détectées
et je ne trouve aucune erreur.
Votre feuille Récap contient 15760 lignes, votre feuille Agents 35860.
Donc dans la feuille Agents il existe plus de N° que dans la feuille Recap.
Dans cette PJ, donnez nous quelles lignes vous posent...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Lionel,
Essayez :
VB:
=SIERREUR(RECHERCHEV(G3;Récap!G$3:G$16;1;FAUX);"")
et pour voir si ce N° existe :
Code:
=SIERREUR(SI(RECHERCHEV(G3;Récap!G$3:G$16;1;FAUX)<>"";"Existe");"N'existe pas")
 

Usine à gaz

XLDnaute Barbatruc
Re-Bjr Gérard , sylvanu , le Forum ,

Je croyais que ça fonctionnait bien mais..... NON
Et je ne vois pas comment je pourrais modifier.

dans mon fichier test :
en Feuille "Récap", j'ai 11254 lignes
En feuille "Agents, j'ai 38560 lignes

Ma recherche V est en feuille "Agents" (qui me recherche les n° identiques en Feuille "Récap")
Apparemment, ça fonctionne jusqu'à la ligne 11244
Et après : que des "#VALEUR!" jusqu'à la fin.

Pourriez-vous m'aider encore ?
Le fichier est trop gros pour être mis directement sur le fil
En cas que vous souhaitiez m'aider, je l'ai mis sur "cjoint"
Voici le lien de téléchargement.
https://www.cjoint.com/c/MEDmIp2tyOD

Un grand merci à vous
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Et pourquoi ne pas avoir recopié la formule que je vous ai proposé ?
Essayez :
VB:
=SIERREUR(SI(RECHERCHEV(G2;Récap!G$2:G$100000;1;FAUX)<>"";"Existe");"Ya pas")
et si vous voulez faire apparaitre le N° alors :
VB:
=SIERREUR(RECHERCHEV(G2;Récap!G$2:G$100000;1;FAUX);"Y'a Pas")
Comme indiqué plus haut il faut respecter la syntaxe et dans :
Code:
=RECHERCHEV(G11246;Récap!G$2:G$100000;1;"Y'a Pas")
"Y'a Pas" n'est pas un paramètre de RechercheV
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Re-Bjr sylvanu
Merci d'être encore là
=SIERREUR(SI(RECHERCHEV(G2;Récap!G$2:G$100000;1;FAUX)<>"";"Existe");"Ya pas") :
Fonctionne mais me donne des "Y'a Pas" alors qu'il y a des n° existants dans la feuille "Récap"

=SIERREUR(RECHERCHEV(G2;Récap!G$2:G$100000;1;FAUX);"Y'a Pas")
Fonctionne mais me donne des "Y'a Pas" alors qu'il y a des n° existants dans la feuille "Récap"

=RECHERCHEV(G11246;Récap!G$2:G$100000;1;0")
Fonctionne jusqu'à la ligne 11244 et met des "
#N/A" sur toutes les lignes suivantes alors qu'il y a des n° existants dans la feuille "Récap"

Je continue mes recherches...
 

Usine à gaz

XLDnaute Barbatruc
Re
Il y a bien le code de notre mapomme qui fonctionnerait certainement...
VB:
Option Explicit

Sub Degoter()
Dim dico As New Dictionary, datader&, data
Dim resultder&, result, i&, clef, deb

   deb = Timer: Application.ScreenUpdating = False
   Set dico = CreateObject("scripting.dictionary")
   dico.CompareMode = 1    'textcompare
  
   If Me.FilterMode Then Me.ShowAllData
   datader = Cells(Rows.Count, "a").End(xlUp).Row
   data = Cells(1, "a").Resize(datader, 3)
  
   Range("j2:j" & Rows.Count).ClearContents
   resultder = Cells(Rows.Count, "i").End(xlUp).Row
   result = Cells(1, "i").Resize(resultder, 2)
  
   For i = 2 To UBound(data): dico(data(i, 1)) = dico(data(i, 1)) & " " & data(i, 3): Next
   For Each clef In dico: dico(clef) = Trim(dico(clef)): Next
  
   For i = 2 To UBound(result): result(i, 2) = dico(result(i, 1)): Next
   Cells(1, "i").Resize(UBound(result), UBound(result, 2)) = result
  
   MsgBox Format(Timer - deb, "0.00"), vbInformation
End Sub
Mais je ne sais pas l'adapter
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Lionel,
Regardez cette PJ avec la même formule que proposée.
En colonne J avec un nb.si je vérifie si le numéro existe ou pas.
En colonne L je regarde la cohérence entre la colonne H et la colonne J.
VB:
Col H : =SIERREUR(RECHERCHEV(G2;Récap!G$2:G$100000;1;FAUX);"Y'a Pas")
Col J : =SI(NB.SI(Récap!G:G;G2)>0;"Existe";"N'existe pas")
Col L : =SI(ET(H2="Y'a Pas";J2="Existe");"ERREUR";SI(ET(H2<>"Y'a Pas";J2="N'existe pas");"ERREUR";"ok"))
M1    : =NB.SI(L:L;"ERREUR")  Donne le nombre d'erreurs détectées
et je ne trouve aucune erreur.
Votre feuille Récap contient 15760 lignes, votre feuille Agents 35860.
Donc dans la feuille Agents il existe plus de N° que dans la feuille Recap.
Dans cette PJ, donnez nous quelles lignes vous posent problème, ça fera avancer les choses.

LIEN : https://www.cjoint.com/c/MEDptY5ZQaJ
 

Usine à gaz

XLDnaute Barbatruc
Merci sylvanu
C'est nickel

Bon sang, comme dirait Raymond, "mais c'est bien sûr" lol
Je n'avais pas pensé au "=SI(NB.SI......)"
=SI(NB.SI(Récap!G:G;G2)>0;"Existe";"N'existe pas")
Qui fonctionne bien et qui permet de le faire directement.

Merci pour ton aide et le temps que tu m'as accordé,
 

Discussions similaires

Réponses
6
Affichages
329
Réponses
3
Affichages
553
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…