weedhopper
Messages postés4Date d'inscriptionvendredi 15 septembre 2006StatutMembreDernière intervention19 février 2012
-
2 avril 2009 à 10:18
kabalagi
Messages postés2Date d'inscriptionjeudi 29 janvier 2009StatutMembreDernière intervention 2 avril 2009
-
2 avril 2009 à 17:09
Bonjour à vous.
Tout d'abord, j'espère ne pas m'être trompé de forum !
Voilà ma question :
J'ai deux onglets. L'un (le A) contient 1200 noms et matricules, l'autre (le B) contient 700 noms
Je voudrais ecrire un macro qui scanne l'onglet B et pour chaque ligne aille chercher dans l'onglet A le matricule (en faisant une recherche sur le nom) et vienne ensuite le rajouter s'il le trouve.
Au début, j'avais fait une boucle sur les 700 noms et pour chaque item une autre boucle pour comparer avec les 1200 noms...mais bon c'est long à l'execution.
kabalagi
Messages postés2Date d'inscriptionjeudi 29 janvier 2009StatutMembreDernière intervention 2 avril 2009 2 avril 2009 à 16:35
Bonjour,
tu peux peut-être te passer d'écrire une macro en utilisant simplement la fonction RECHERCHEV dont voici un exemple :
Dans OngletA, tu codes la formule suivante dans chaque ligne en regard du nom :
=RECHERCHEV(A2;OngletB!A:B;2;FAUX)
La référence "A2" correspond au nom recherché de OngletA.
La reférence "OngletB!A:B" correspond à la plage de recherche où se trouvent le nom et le matricule dans l'OngletB. Attention, la valeur recherchée (le nom) doit être dans la première colonne de la plage de recherche. Dans cet exemple, la valeur matricule occupe la deuxième colonne de la plage de recherche (B), ce qui est précisé par le paramètre "2". Dans un autre exemple, si le nom est en colonne C et le matricule en colonne G, il faudrait écrire : RECHERCHEV(A2;OngletB!C:G;5;FAUX). Enfin, le paramètre "FAUX" précise que si la valeur cherchée n'existe pas, il affiche une erreur (N/A) que tu peux gérer par une fonction SI(ESTERREUR(...);;). Ce qui donnerait au final :
La fonction RECHERCHEV présuppose que tes valeurs sont stockées en colonne (ce qui doit être le cas vu le nombre de valeurs). Sache quand même qu'il existe une fonction RECHERCHEH qui fait la même choses sur des lignes.
kabalagi
Messages postés2Date d'inscriptionjeudi 29 janvier 2009StatutMembreDernière intervention 2 avril 2009 2 avril 2009 à 17:09
Il est tout à fait possible de positionner la fonction RECHERCHEV par macro dans une colonne de travail puis ensuite recopier les valeurs de cette colonne à l'endroit désiré (ou laisser en l'état si la colonne est une colonne définitive).