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

Recherchev en vba

  • Initiateur de la discussion Initiateur de la discussion PATSAB
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

PATSAB

Guest
Bonjour à tout le forum,

Je recherche à écrire sous vba une fonction équivalente à RECHERCHEV que j'utilise sous excel 2003 car RECHERCHEV nécessite un classement croissant préalable de la première colonne à gauche de la zone re recherche.
Or je me sers de mon fichier pour beaucoup de choses, et j'ai tout le temps besoin de modifier l'ordre des informations : classement alphabétique, par date de visite...
Ma formule RECHERCHEV actuelle : =SI($A3="";"";(RECHERCHEV($A3;LISTE!$A$3:$H$9;8;FAUX)))
Mon fichier test : RECHERCHEV VBA

Merci à tous et encore bonne journée ! 🙂
Patrick
 

Pièces jointes

Re : Recherchev en vba

Bonjour,
Pas nécessaire que la colonne soit triée dans l'ordre si tu utilises FAUX
Voir l'aide ...
Si l'argument valeur_proche est VRAI, les valeurs de la première colonne de l'argument table_matrice doivent être placées en ordre croissant : ..., -2, -1, 0, 1, 2, ..., A-Z, FAUX, VRAI.
Sinon, la fonction RECHERCHEV peut donner une valeur incorrecte.
Si l'argument valeur_proche est FAUX, les éléments de la table ne doivent pas nécessairement être classés.
 
Re : Recherchev en vba

Bonjour,
...RECHERCHEV nécessite un classement croissant préalable de la première colonne à gauche de la zone re recherche.
Là j'ai comme un doute où je n'ai pas compris
Exemple joint sans VBA, trié ou pas trié sans n'a aucune incidence, à moins que tu ne déplaces les colonnes !
A+
kjin
 

Pièces jointes

Re : Recherchev en vba

Bonsoir,

Tout d'abord merci pour vos réponses.
Kjin : Ce mode de recherchev fonctionne impeccablement bien.
Mais cela ne peut fonctionner que si l'on utilise la première colonne pour rechercher, ou une colonne désignée comme étant la première dans la plage.
C'est pourquoi je m'intéressais au VBA, car à partir d'un seul fichier "Personnel", je récupère toutes sortes d'information qui ne sont pas toujours les mêmes et ne sont pas sur le même critère de recherche. Alors que sous vba on peut aller beaucoup plus loin sans avoir à changer de plage
Si toutefois vous aviez également des idées à ce sujet, je reste preneur.
Et encore merci à tous
 
Re : Recherchev en vba

Bonsoir,

Tout d'abord merci pour vos réponses.
Ce mode de recherchev fonctionne impeccablement bien.
Mais cela ne peut fonctionner que si l'on utilise la première colonne pour rechercher, ou une colonne désignée comme étant la première dans la plage.
C'est pourquoi je m'intéressais au VBA, car à partir d'un seul fichier "Personnel", je récupère toutes sortes d'information qui ne sont pas toujours les mêmes et ne sont pas sur le même critère de recherche. Alors que sous vba on peut aller beaucoup plus loin sans avoir à changer de plage
Si toutefois vous aviez également des idées à ce sujet, je reste preneur.
Et encore merci à tous
 
Re : Recherchev en vba

Bonsoir PATSAB, kjin, Eric,

Deux similitudes :

Avec formules et en dur, si les éléments changent, il faut changer les formules.
En VBA, c'est pareil....

Avec formules et quelques cellules réservées aux critères on peut tout faire.
En VBA, c'est pareil, mais : "sous vba on peut aller beaucoup plus loin sans avoir à changer de plage", là, il faudrait que tu expliques ta certitude.

Excel comme VBA ne font que ce qu'on leur dit.

J'ai peur de ne pas comprendre..... possible.

Bonne soirée.

Jean-Pierre
 
Re : Recherchev en vba

bonsoir,

Pour être complet sur la partie fonction, quand Recherchev n'est pas utilisable, on utilise la combinaison EQUIV et INDEX pour s'affranchir de la position de la colonne "Cle"
EQUIV donne le rang de la valeur cherché dans la matrice
INDEX restitue la donnée d'une matrice en fonction de son numéro de ligne et de colonne (dans ton cas c'est une matrice à une colonne)

Dans ton cas =SI($A4="";"";INDEX(LISTE!$H$3:$H$9;(EQUIV($A4;LISTE!$A$3:$A$9;0))))
est équivalent à la fonction =SI($A3="";"";(RECHERCHEV($A3;LISTE!$A$3:$H$9;8;FA UX)))



GIBI
 
Re : Recherchev en vba

Bonjour à tous

Et merci encore pour votre aide.

En fin de compte, pour simplifier, j'ai modifié mon fichier réel de base, et utilisé la valeur "faux" dans la formule RECHERCHEV.
Mes liaisons fonctionnent impeccablement !

Au plaisir de vous lire à nouveau prochainement.
Patrick
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
1 K
  • Question Question
Réponses
6
Affichages
778
Réponses
3
Affichages
608
Réponses
12
Affichages
975
J
  • Question Question
Réponses
9
Affichages
557
J
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…