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

XL 2021 RECHERCHEV qui ne fonctionne pas

treza88

XLDnaute Occasionnel
Bonjour à tous,

Tout est dans le titre.

Voici un fichier exemple, dites moi ou j'ai fait une bêtise.

Merci d'avance
 

Pièces jointes

  • recherchev.xlsx
    9.7 KB · Affichages: 6

chris

XLDnaute Barbatruc
Bonjour
Pour commencer c'est un non sens de traiter des colonnes entières soit plus d'1 million de lignes dans une formule...

Comme l'indique l'aide en ligne "N’oubliez pas que la valeur recherchée doit toujours apparaître dans la première colonne de la plage pour que RECHERCHEV fonctionne correctement."

Sur 2021 tu peux utiliser RECHERCHEX
 

treza88

XLDnaute Occasionnel
Merci chris,

Quel différence avec RECHERCHEV, si ce n'est la gestion d'erreur intégré ?
Est ce que RECHERCHEX fonctionne avec 365 ?
En formule peut on trouver la dernière ligne d'un tableau, ou faut il passer par vba obligatoirement ?

ça fait beaucoup de question dans un message!!
 
Dernière édition:

treza88

XLDnaute Occasionnel
Après quelques essai, J'ai réussi a faire fonctionner à la place de RECHERCHEV:
INDEX +EQUIV
Le double RECHERCHEV

Mais pas le RECHERCHEX.
Qu'est ce qui ne va pas ?
 

Pièces jointes

  • recherchex.xlsx
    10 KB · Affichages: 6

chris

XLDnaute Barbatruc
RE
Fait plus ou moins double emploi avec ce post

Après un filtrage c'est possible ?
Ou il est toujours considérer avec trous ?
Un trou est un trou : la poussière cachée sou le tapis reste de la poussière...

Mais dans le cas d'un tableau structuré toute formule sait gérer la taille du tableau...

Un tableau filtré garde ses numéros de lignes initiales.... il y a juste des numéros masqués

Questions floues qui n'apporteront pas de réponse précise...
 
Dernière édition:

treza88

XLDnaute Occasionnel
Non pas tout a fait chris, mais il est vrai que c'est proche, car sur ce post ce n'était qu'avec des formules Excel.
Alors que l’autre je n'attendait qu'une réponse VBA sur un sujet précis.

Après, est il possible de créer une fonction qui me trouverait la fin du tableau avec le code de job75 et de l'intégrer dans la formule pour avoir l'adresse du bas du tableau.
La fonction renvoyant l'adresse de la dernière ligne ?
 

treza88

XLDnaute Occasionnel
J'ai testé ça, mais ça ne fonctionne pas :

VB:
=SI(RECHERCHEX($C9406;'Numero'!$A$7:a&finDeTableau();Numero'!Y$7:Y$5026;"Comm NT")=0;"NR";RECHERCHEX($C9406;'Numero'!$A$7:a&finDeTableau();'Numero'!Y$7:Y$5026;"Comm NT"))

Avec comme fonction :

Code:
Function finDeTableau()
Application.Volatile
Dim finTab As Long
Dim basTabAdresse As String

finTab = Worksheets("Numero").ListObjects("Numero").Range.Find("*", , xlValues, , xlByRows, xlPrevious).Row

finDeTableau = finTab

End Function

Mais le résultat :
Code:
#REF
 

chris

XLDnaute Barbatruc
RE
En VBA on n'a quasi jamais besoin de connaitre cette ligne : on écrit très facilement en fin de tableau si on utilise le VBA applicable aux tableaux structurés et non aux plages.

Mais si tu y tiens :
VB:
    With Range("Tableau1").ListObject
        Fin = .ListRows.Count + .Range.Row
    End With
A noter qu'il est totalement inutile d'indiquer le nom de la feuille ou la position du tableau : le nom suffit
 

treza88

XLDnaute Occasionnel
Le problème ne vient pas de là.

Car avec :
VB:
finTab = Worksheets("Numero").ListObjects("Numero").Range.Find("*", , xlValues, , xlByRows, xlPrevious).Row

je récupère bien la fin de mon tableau.
Mais l'insertion de ma fonction fait buger ma formule.
Mais pourquoi le retour de ma fonction fait buger ma formule.
Le "#ref" correspond a quoi ?
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…