[VBA Excel] taches en parallèle [Résolu]

Messages postés
36
Date d'inscription
dimanche 2 février 2003
Dernière intervention
4 juin 2009
- - Dernière réponse : Molenn
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 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)

merci pour les réponses !!
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
3
Merci
Salut, non ce n'est pas possible! Le thread n'existe pas en VBA!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 87 internautes nous ont dit merci ce mois-ci

Commenter la réponse de drikce06
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
5
0
Merci
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.

Non au codage sauvage qui n'apporte rien !

Molenn
Commenter la réponse de Molenn
Messages postés
36
Date d'inscription
dimanche 2 février 2003
Dernière intervention
4 juin 2009
0
Merci
aïe :-(

j'atteins les limites du VBA lol

Drikce 06> donc je vais faire réponse acceptée, mais quand même un
Molenn> en fait j'ai besoin de coder ça dans une macro.
merci pour les réponses !
Commenter la réponse de outofbusiness
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
0
Merci
 tu peux toujours faire une macro en combinant les deux!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
16
0
Merci
Et si le codage demeure essentiel pour une raison ou pour une autre, tu peux utiliser la fonction Find qui est plus rapide qu'une double-boucle.

Tu boucles donc la colonne A cellule par cellule et fais un Find de cette valeur sur la colonne B

MPi
Commenter la réponse de cs_MPi
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
5
0
Merci
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

Molenn
Commenter la réponse de Molenn

Vous n'êtes pas encore membre ?

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

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 et codes sources.

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