Code VBA pour RechercheV

Résolu/Fermé
Francois_Fion Messages postés 7 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 16 février 2017 - 13 févr. 2017 à 16:12
Francois_Fion Messages postés 7 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 16 février 2017 - 16 févr. 2017 à 09:32
Bonjour à tous,

J'essaye de récupérer des données dans une table présente sur une feuille différente de celle sur laquelle je travaille (on est d'accord, c'est le principe de la recherchev)

Mais voilà, je n'arrive pas à l'automatiser via un code VBA.
A chaque fois, le code me renvoie sur un #NOM?

En créant une macro automatique, voici le code que j'obtiens :
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[5],mapping!R1C2:R456C10,6,FALSE)"

Cependant, ayant un tableau de plus de 100000 lignes, il faudrait que mon code marche pour la cellule que j'ai activée, mais aussi pour les 100000 lignes qui suivent.

En gros, ce que je voudrais obtenir, ce serait quelque chose de la sorte (en définissant préalablement le i) :
=recherchev(cells(i,23),Mapping!$B$1:$J$500;6;FAUX)
Et que bien sûr, cette fonction avance, jusqu'à ce qu'il n'y ait plus de valeur dans la colonne 23 (colonne W)

je vous avoue que je me casse la tête depuis quelques bonnes heures dessus... auriez-vous une solution ?

je vous remercie d'avance de votre aide,

François.
A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 13/02/2017 à 17:09
Bonjour,

sans VBA
tu écris ta formule " à la française " sur la première ligne en colonne Z

et tu "double-clic" sur le petit carré noir en bas et à droite de la cellulz en Z


Et si tu tiens à du VBA ,pourquoi pas, mais...
petite maquette avec un rechercheV
https://mon-partage.fr/f/HhRi64qw/
le code
Option Explicit
'------------------------------------------------------
Sub Macro()
Application.ScreenUpdating = False
Range("C1").FormulaLocal = "=RECHERCHEV($B1;$F$1:$G$13;2;0)"
Range("C1").AutoFill Destination:=Range("C1:C13")
End Sub



 Michel
0
Francois_Fion Messages postés 7 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 16 février 2017
14 févr. 2017 à 13:31
Merci Michel,
En fait, je tiens à VBA, tout simplement, parce que j'ai des dizaines de RechercheV à faire... et que ça me permettrait d'automatiser et surtout d'écrire les valeurs, plutôt que les formules (et donc par là-même d'alléger mon fichier)
J'ai essayé ta formule, mais je rencontre le même problème qu'avec la mienne, ça ne marche malheureusement pas.
Je vais essayer encore...

Merci quand même et bonne journée,

François.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Francois_Fion Messages postés 7 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 16 février 2017
14 févr. 2017 à 13:42
Je te signale que mes 2 propositions avaient été testées avec succès. je n'envoie jamais de solutions non testées.

encore perdu mon temps...
0
Francois_Fion Messages postés 7 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 16 février 2017
16 févr. 2017 à 09:32
Non Michel, tu n'as pas perdu ton temps... comme je te disais, "je vais encore essayer" et c'est ce que j'ai fait !
J'ai réadapté ta solution à mon cas (c'est cette partie qui faisait bugger la formule) et après avoir compris, j'ai réussi à bien écrire la formule.
Donc, désolé de t'avoir fait sortir de tes gonds et merci d'avoir pris le temps de me répondre.
Passe une bonne journée,

François.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
15 févr. 2017 à 11:23
Bonjour François,
Salutations à l'ami Michel,

Essayons alors l'usine à gaz !
François ouvre ton aide VBA et fait une recherche sur la méthode Find (Range.Find, méthode).
D'autres exemples ICI.
0