Beug fonction RECHERCHEV

Bonjour à tous,

Je me permets de vous demander un coup de main, je débute en excel / VBA et quelque chose a du m'échapper concernant la fonction RECHERCHEV. Je joins le fichier allégé pour vous expliquer le problème.

Voici ce que j'aimerais réussir à faire (à terme) en VBA (macro) :

1) Sélectionner les 4 premières lettres de chaque cellule dans la colonne A, feuille 1 (avec =GAUCHE(A1;4) puis copier/coller valeur spéciale, valeur ; que je sais également adapter en VBA)

2) Utiliser la fonction RECHERCHEV() en excel, Application.WorksheetFunction.VLookup en VBA pour rechercher le terme à 4 lettres dans la feuille "aeroport" et remplacer ce terme par le nom de l'aéroport associé.

Je sais que la syntaxe doit être : excel : =RECHERCHEV("mavaleur", LaPlageDeRecherche, N°DeColonne, False)

Donc ici pour moi, mavaleur = le mot à 4 lettres, LaPlageDeRecherche = la plage entière de la feuille aéroport, N°DeColonne = 3.

Cependant, rien que la fonction RECHERCHEV() ne fonctionne pas pour moi (soit #ref, soit #nom soit donne le mauvais nom d'aéroport) donc je n'arrive pas à créer la macro correspondante. Y'a-t-il quelque chose qui m'a échappé ? J'ai essayé de regarder les formats, les cellules à fixer avec $

14test-ecureuil.xlsm (10.36 Ko)

... mais toujours rien.

Si c'est possible, j'aimerais de l'aide directement en VBA (pour éviter de repasser par excel ; c'était juste pour faire le test de ce qui ne fonctionnait pas).

Merci beaucoup pour votre aide

Bonjour,

Pour la formule excel il s'agit de la formule :

=RECHERCHEV(GAUCHE(A1;4);aeroports!$A$2:$C$18;3;FAUX)&" - "&RECHERCHEV(DROITE(A1;4);aeroports!$A$2:$C$18;3;FAUX)

A adapter pour macro, je ne suis pas assez douée pour me lancer dedans,

Christelle

voici un début

8test-ecureuil.xlsm (22.75 Ko)

de proposition

par contre je ne suis pas sur d'avoir compris le remplacement

Bonjour à tous

Soit on utilise une formule sans oublier le 4ème argument, soit on utiilise VBA et dans ce cas un find est plus approprié qu'un appel à une WorksheetFunction...

Bonjour

En utilisant des tableaux structurés, ce qui est toujours une bonne chose.

J'ai nommé le tableau de la feuille 1 'tb_codes" et celui de la feuille 2 "tb_noms"

Sub Noms()
  Range("tb_codes[Nom]").FormulaR1C1 = "=VLOOKUP(LEFT(RC[-1],4),tb_noms,3,FALSE)"
End Sub
3test-ecureuil.xlsm (16.69 Ko)

Merci à tous pour vos réponses

J'ai réussi à résoudre mon problème en utilisant effectivement un tableau structuré. @78chris avez-vous plus d'indications pour find ? Notamment comment je pourrais l'utiliser dans ce cas précis.

Enfin, mon véritable tableau aéroport contient plus de 900 noms, mais lorsque l'abréviation n'est pas connue, la fonction recherchev() ne fonctionne pas. Y'a-t-il une alternative pour, dans le cas où l'abréviation n'est pas dans le tableau, on zappe l'instruction, ou on ne fait rien ?

Merci encore pour votre aide à tous

RE

SIERREUR(RECHERCHEV(...);"")

Concernant le find : si le but est d'écrire dans la cellule la valeur en dur et non une formule, il est plus simple de rechercher par un find (l’équivalent de CTRL F) récupérer la valeur trouvée pour l'inscrire dans la cellule. 900 lignes cela reste acceptable par formule

Merci à tous,

Problème résolu grâce à vous.

Rechercher des sujets similaires à "beug fonction recherchev"