Code VBA pour RechercheV [Résolu/Fermé]

Signaler
Messages postés
7
Date d'inscription
mardi 27 décembre 2016
Statut
Membre
Dernière intervention
16 février 2017
-
Messages postés
7
Date d'inscription
mardi 27 décembre 2016
Statut
Membre
Dernière intervention
16 février 2017
-
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.

2 réponses

Messages postés
16314
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
28 novembre 2020
3 081
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
Messages postés
7
Date d'inscription
mardi 27 décembre 2016
Statut
Membre
Dernière intervention
16 février 2017

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.
Messages postés
16314
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
28 novembre 2020
3 081 >
Messages postés
7
Date d'inscription
mardi 27 décembre 2016
Statut
Membre
Dernière intervention
16 février 2017

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...
Messages postés
7
Date d'inscription
mardi 27 décembre 2016
Statut
Membre
Dernière intervention
16 février 2017

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.
Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 520
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.