XL 2016 Fonction rechercheV en VBA sur plusieurs colonnes

Michel_ja

XLDnaute Occasionnel
Bonjour à tous,
j'ai deux petits soucis avec mon fichier excel.
1-Tout d'abord, j'ai bien trouvé sur ce forum comment faire une rechercheV en vba, et j'ai cela de la part de Pierrot93:
Sub test()
With Sheets("Feuil1")
.Range("B1").Value = WorksheetFunction.VLookup(.Range("A1").Value, Sheets("Feuil2").Range("A1:B100"), 2, False)
End With
End Sub
Mais lorsque j'essaie de l'appliquer à mon fichier pour écrire la formule en rouge sur la feuille "Test for segmentations" cela ne fonctionne pas.

2-Une fois le code trouvé, j'aimerai savoir si on est obligé de répêter les lignes de codes pour autant de colonnes qu'on a ou est-ce qu'on peut faire une espèce de boucle ou une sorte d'incrémentation (qu'on fait lorsqu'on ajoute "Colonne" dans la formule Excel. En fait, j'aimerai appliquer la formule bleue pour une vingtaine d'années.

J'espère que vous pourrez m'aider.
Je joins le fichier.
MERCI
 

Pièces jointes

  • Test.xlsm
    18.6 KB · Affichages: 96

Michel_ja

XLDnaute Occasionnel
Merci Wolf. En A5 je veux obtenir 1234081 qui est le résultat de la RechercheV. Mais j'aimerai avoir cette fonction en VBA car la formule excel devient inutilisable lorsque je voudrais faire un copier coller de cette fonction ; un peu plus tard ma feuille "Database" est supprimée mais je souhaite garder la formule.
 

Lone-wolf

XLDnaute Barbatruc
Re

Ce que tu demande est bizarre. Puisque tu as toute une colonne avec les codes, en A2 j'ai créé une liste déroulante avec les codes. Fait ton choix, si code non trouvé, un message s'affiche.

Le code est dans le module de la feuille. Clic-droit sur la feuille > Visualiser le code.
 

Pièces jointes

  • Test.xlsm
    23 KB · Affichages: 120

Michel_ja

XLDnaute Occasionnel
Merci pour ton soutien ! Je pense que j'ai mal exprimé mon besoin; c'est plus simple que ce que tu as fait. Je souhaite uniquement que dans ma colonne A, apparaissent la fonction RechercheV que j'ai déjà préécrite =RECHERCHEV($C5;Database!$C$2:$E$11;1;FAUX) mais que cette dernière se fasse via du VBA. Puis après pour l'appliquer à l'ensemble des lignes je ferai un copier/coller ou alors s'il y a la possibilité de faire une boucle directement.
La raison de la RechercheV en VBA est que plus tard ma feuille database disparait donc je perd la formule si écrite sans vba. Dans 1 mois lorsque je ferai une mise à jour des données, j'aurai à nouveau une feuille database, et donc la formule sous VBA sera toujours identique.
Après, peut-être que la fonction Match en VBA fait la même chose que RechercheV
Merci
 

Lone-wolf

XLDnaute Barbatruc
Re Michel

En A5 je veux obtenir 1234081
. C'est ce que fait la macro et application.Match fait la même chose que RechercheV.

Et maintenant tu dis
Je souhaite uniquement que dans ma colonne A, apparaissent la fonction RechercheV que j'ai déjà préécrite =RECHERCHEV($C5;Database!$C$2:$E$11;1;FAUX)
Donc en toute lettre si je comprends bien. Mais pour quoi faire?? o_O
 

Michel_ja

XLDnaute Occasionnel
Dans ta macro je dois absolument choisir un Mnemonic en Cellule A2 et le résultat du Vlookup apparait dans la correspondante. Est ce qu'on pourrait avoir la même formule mais appliquée directement dans l'ensemble des ligne de la colonne A ? Avec si Vlookup ou Match ne trouve pas le mnemonic avoir "#N/A" .
Je voulais en toute lettre ou plutôt que le VBA garde la formule apparente pour faire un copier coller formule (comme si je l'avait faite avec la fonction Excel) sur l'ensemble des lignes mais si on fait une boucle alors ce n'est plus la peine d'avoir en toute lettre !
 

Lone-wolf

XLDnaute Barbatruc
Re

Pour la boucle pas de problème, si c'est bien ça que tu veux.

EDIT: voilà qui est fait. À partir de la colonne B, utilise TAB du clavier jusqu'à la colonne C.

Ce que je ne comprend pas, pourquoi tu voulais avoir ceci comme résultat.

formule.gif
 

Pièces jointes

  • Test.xlsm
    23.2 KB · Affichages: 121
Dernière édition:

Michel_ja

XLDnaute Occasionnel
Merci Lone-wolf. En fait, je pensais qu'une boucle prendrait beaucoup de temps, alors j'avais privilégié de créer la formule dans une cellule comme lorsqu'on fait les formules avec les fonctions standards d'Excel (et non obtenir son résultat) et puis faire un copier coller speciale formule sur la range ! Mais la boucle c'est parfait finalement. MERCI
 

Discussions similaires

Réponses
28
Affichages
920
Réponses
2
Affichages
98
Réponses
3
Affichages
547

Statistiques des forums

Discussions
311 715
Messages
2 081 822
Membres
101 821
dernier inscrit
hybroxis