Signaler

Code VBA pour RechercheV [Résolu]

Posez votre question Francois_Fion 7Messages postés mardi 27 décembre 2016Date d'inscription 16 février 2017 Dernière intervention - Dernière réponse le 16 févr. 2017 à 09:32 par Francois_Fion
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.
Utile
+0
plus moins
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



Francois_Fion 7Messages postés mardi 27 décembre 2016Date d'inscription 16 février 2017 Dernière intervention - 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.
Répondre
michel_m 14860Messages postés lundi 12 septembre 2005Date d'inscription ContributeurStatut 22 septembre 2017 Dernière intervention - 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...
Répondre
Francois_Fion 7Messages postés mardi 27 décembre 2016Date d'inscription 16 février 2017 Dernière intervention - 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.
Répondre
Donnez votre avis
Utile
+0
plus moins
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.
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !