outofbusiness
Messages postés36Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention 4 juin 2009
-
13 avril 2007 à 11:06
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 2011
-
13 avril 2007 à 11:57
bonjour !
J'ai 2 colonnes que je parcours. pour chaque cellule de la première colonne, je parcours toute la colonne suivante pour voir si la valeur de la cellule actuelle de la 1ère colonne s'y trouve. et si c'est le cas, je passe à la cellule du dessous de la première colonne, et je recheck toute la 2è colonne etc...
j'ai une macro qui fait ça mais c'est très long.
en effet, si on a 20 000 lignes, on parcours 20000 fois la 2è colonne.
donc ma question est : est-ce qu'on peut avec excel faire ce travail de checker la 2è colonne pour plusieurs cellules en parallèle ?? afin de gagner du temps :-)
(on m'a dit que en java par exemple c'est possible)
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 13 avril 2007 à 11:14
Heu, si tu veux juste savoir si le contenu d'une cellule se trouve quelque part dans une colonne, tu n'as pas besoin de macro hein, et c'est très rapide.
Exemple :
A1: Cellule que tu cherches
B:B : Colonne contenant toutes les données à vérifier.
Et bien, en C1, tu mets la formule suivante :
=RECHERCHEV(A1;B:B;1;FAUX)
Si ta valeur se trouve dans la colonne B, elle sera ré-écrite dans C1. Après, tu adaptes avec par ex. une vérification d'erreur (en effet, si ta cellule ne se trouve pas dans la colonne B, un #N/A est remonté)
Si(ESTERREUR(RECHERCHEV(A1;B:B;1;FAUX))VRAI;"";"Existe")
Tu n'as plus qu'à copier la formule dans toutes les cellules C jusqu'à hauteur de ta colonne A, et en face de chaque cellule de la colonne A, il sera marqué dans la cellule C "Existe" si la valeur se trouve dans la colonne B.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 13 avril 2007 à 11:57
Si tu as juste besoin de savoir si une cellule de la colonne A se trouve dans la colonne B, tu peux combiner effectivement le code avec la formule.
Tu mets la formule dans la colonne C, comme ça tu as marqué "Existe" sur les lignes qui t'intéresse.
Après, dans ton code, tu fais juste une boucle sur la colonne, et tu vérifies le contenu de la cellule, un truc du style :
For i = 1 to 20000
if cells(i,3).value = "Existe" then
'ton code
end if
Next i
ou alors, la fonction .find comme le dit MPi.
Le but, c'est surtout de se simplifier au maximum, moins il y a de lignes de code, mieux c'est