EXCEL : macro pour comparer deux colonnes

Fermé
pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009 - 24 févr. 2009 à 11:26
Mabelle60 Messages postés 469 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 21 juin 2017 - 26 févr. 2009 à 10:24
Bonjour,

Je cherche une macro pour le probleme suivant :

Intro : Je travail sur deux feuilles, sur la premiere feuille j'ai la colonne A avec 100 valeurs, sur la deuxieme feuille la colonne B avec 50.

Developpement : Je souhaiterai comparer ma colonne A avec la colonne C de mon autre feuille.
Si il y a correspondance entre le contenu de mes colonnes, je souhaiterai renvoyer du texte dans la colonne B de la premiere feuille à cote de la valeur retrouvée dans la feuille 2.

exemple : Feuille 1 : A B Feuille 2 : C
maison velo
velo oui porte
voiture
porte oui

Conclusion : j'espere etre clair, je pense que c'est pas grand chose pour quelqu'un qui maitrise les macros.

Merci pour vtre aide.

Fabien
A voir également:

17 réponses

Mabelle60 Messages postés 469 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 21 juin 2017 130
24 févr. 2009 à 12:00
Salut
Voilà déja sans Macro
=SI(NB.SI(Feuil2!C$1:C$50;Feuil!A1);"oui";"")
A placer en B1 et tirer jusqu'en B100 (ou face à ton début de champ de feuille 1 jusqu'a la fin du champ de la même feuille)
Je creuse pour la macro si tu y tiens absolument.
0
bonjour
enfeuilletant le forum je suis tombé sur votre reponse ; j'avoue que je n'y comprend pas grd chose
SI(NB.SI(Feuil2!C$1:C$50;Feuil!A1);"oui";"") donc si vous pouviez me dire a quoi correspond le critère feuil!A1
cela m'aiderai à (peut-etre ) a comprendre ce que l'on veut comparer dans les 2 colonnes car je ne vois pas le rapport entre velo / porte/ auto neanmoins votre formule peut etre utle à d'autres egards
merci A+
0
pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009 > gilou
25 févr. 2009 à 15:29
A1 est la celulle de la feuille 1 qui doit etre comparée avec les cellules de C1 à C50 de la feuille 2
En suite A2 qui doit etre comparée avec les cellules de C1 à C50 de la feuille 2

Et si les cellules correspondes, je souhaite que l'on copie la case D pour A feuille1 = C feuille2, et que l'on colle dans B de A correspondant.
0
gilou > pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009
25 févr. 2009 à 16:05
RE à ce moment mabelle60 aurait du t' indiquer feuil1!A1 ; suite a ta reponse je me demandais comment tu avais pu tester cette fontion / bonjour à mike 31 ( mémo : visuel pour clientelle agricole)
0
pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009 > gilou
25 févr. 2009 à 16:23
Je l'ai testé comme ca, et cela a fonctionné, je pense que feuil!A1 signifie A1 de la feuille active
0
pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009
24 févr. 2009 à 12:15
Merci beaucoup,

Pour la macro pas la peine, je pensais que c'etait faisable qu'avec une macro.

Encore merci, tu est au top
0
pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009
25 févr. 2009 à 13:59
J'ai encore besoin d'aide SVP

Il s'agit de la meme problematique que la premiere fois, mais au lieu de remplir la cellule par un oui, je souhaiterai que la formule colle la cellule D du mot correspondant.




exemple : Feuille 1 : A B Feuille 2 : C D
maison velo roue
velo roue porte serrure
voiture
porte serrure


Amicalement.
0
pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009
25 févr. 2009 à 14:41
A l'aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009
25 févr. 2009 à 15:08
J'ai encore besoin d'aide SVP

Il s'agit de la meme problematique que la premiere fois, mais au lieu de remplir la cellule par un oui, je souhaiterai que la formule colle la cellule D du mot correspondant.




exemple : Feuille 1 : ----------A------B ---------Feuille 2 : ---------C ---------D
-------------------------------maison ---------------------------------velo -----roue
---------------------------------velo ---roue -------------------------porte ---serrure
-------------------------------voiture
--------------------------------porte --serrure


Amicalement.
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
25 févr. 2009 à 15:38
Salut,

D'une question toute simple, on fini par se perdre dans toutes ces explications qui vues de l'extérieur sont difficilement compréhensible.

Le plus simple est de mettre à notre disposition un exemple de fichier avec des annotations, sur la feuille 1 j’ai ça et sur la feuille 2 je souhaiterai avoir ça ou le contenu de cette cellule etc etc …

Pour joindre un fichier avec ce lien

https://www.cjoint.com/

A+
0
pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009
25 févr. 2009 à 15:54
Je connais pas ce site :

https://www.cjoint.com/?cBp0C08eLH

Dans la colonne K de la feuille1 se trouve la formule initiale ("oui" dans K si la celulle J se trouve dans la colonne C de la feuiile 2)
Moi maintenant je souhaiterai a la pace de "oui" avoir le contenu de la cellule D de la feuille 2.

Merci
0
Bonjour

=SI(ESTERREUR(RECHERCHEV(J1;Feuil2!$C$1:$D$4;2;0));"";RECHERCHEV(J1;Feuil2!$C$1:$D$4;2;0))

Les données de la colonne J de feuil1 doit être en ordre croissant
0
Mabelle60 Messages postés 469 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 21 juin 2017 130
25 févr. 2009 à 16:50
Salut
Autant pour moi, il fallait bien lire Feuil1!A1 (sorry,sorry... j'le f'rait plus)

De prime abord, je tenterais
=SI(NB.SI(Feuil2!C$1:C$50;Feuil1!A1);RECHERCHEV(Feuil1!A1;Feuil2!C$1:D$50;2;FAUX);"")
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
25 févr. 2009 à 16:58
Salut,

A la vu de ton fichier je pense plus à la RECHERCHEV

Commence par nommer ta plage de cellule contenant les infos feuille2 exemple Liste

la formule en Feuille 1 devient

=RECHERCHEV(J8;Liste;2;0)

Mai si la valeur recherchée n'existe pas il y aura un message d'erreur #N/A pour éviter ce message il convient de saisir cette formule

=SI(ESTERREUR(RECHERCHEV(J4;Liste;2;0));"";RECHERCHEV(J4;Liste;2;0))

et d'incrémenter vers le bas récupéres ton fichier avec le lien

https://www.cjoint.com/?cBq61qmkFl

A+
0
pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009
26 févr. 2009 à 09:04
Grace à vos infos, j'ai pu utiliser la fonction "RECHERCHEV" que je connaissais pas, a vrai dire j'en connaissais aucune.

Je suis allé au plus simple et ca a l'air de bien fonctionner :

=RECHERCHEV(Feuil1!L2;Feuil3!$A$1:$B$666;2;FAUX)

Merci à tous


Voila un forum avec des forumeurs efficaces.
Restez pas loin j'aurai certainement besoin encore de vous, :-)

Fabien
0
pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009
26 févr. 2009 à 09:18
Grace à vos infos, j'ai pu utiliser la fonction "RECHERCHEV" que je connaissais pas, a vrai dire j'en connaissais aucune.

Je suis allé au plus simple et ca a l'air de bien fonctionner :

=RECHERCHEV(Feuil1!L2;Feuil3!$A$1:$B$666;2;FAUX)


PAR CONTRE : C'EST QUOI LA DIFFERENCE ENTRE $A$1:$B$666 ET A$1:B$666, AQUOI SERVE LES $ DEVANT ?

Merci à tous


Voila un forum avec des forumeurs efficaces.
Restez pas loin j'aurai certainement besoin encore de vous, :-)

Fabien
0
Mabelle60 Messages postés 469 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 21 juin 2017 130
26 févr. 2009 à 09:43
Salut
Les $ servent à figer les lignes et colonnes de référence. Très utile lorsque tu veux copier une formule avec les même chamsp de références
Le $ devant la lettre fige la colonne. Après la lettre, il fige la ligne.
Explication
Ta formule =RECHERCHEV(Feuil1!L2;Feuil3!A1:B666;2;FAUX) en D3
sans les $, tu copie colle en D4, tu aura
=RECHERCHEV(Feuil1!L2;Feuil3!A2:B667;2;FAUX)
si tu as une donnée en A1, elle sera exclue de la recherche
si tu colle en C3, tu auras
=RECHERCHEV(Feuil1!L2;Feuil3!B1:C666;2;FAUX)
La c'est encore plus embêtant car tu exclue totalement la colonne A. De ce fait soit tu as des données en colonne C et tes retours seront erronés voire résultat #N/A, soit tu n'as rien encolonne C et tu aura 0 en retour

Voilà voilà
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
26 févr. 2009 à 09:41
Salut,


$A$1 (colonne absolue (référence de cellule absolue : dans une formule, adresse exacte d'une cellule, quelle que soit la position de la cellule qui contient la formule. Une référence de cellule absolue se présente sous la forme $A$1.) et ligne absolue) $A$1

A$1 (colonne relative (référence relative : dans une formule, adresse d'une cellule basée sur la position relative de la cellule contenant la formule et de la cellule à laquelle il est fait référence. Si vous copiez la formule, la référence s'adapte automatiquement. Une référence relative s'affiche sous la forme A1.) et ligne absolue) C$1

$A1 (colonne absolue et ligne relative) $A3

A1 (colonne relative et ligne relative) C3

Pour mieux comprendre, tu saisis une valeur exemple 2 dans la cellule A1 et tu saisis dans une autre cellule B1 = A1 et tu incrémente cette cellule vers le bas ou vers la droite ensuite tu recommence cette opération avec une $ à droite de l'identification de la colonne =$A1 puis la $ à gauche et =$A$1

Pour revenir à ta formule et remplacer cette partie Feuil3!$A$1:$B$666 tu peux nommer cette plage exemple Liste

ce qui te donnera =RECHERCHEV(Feuil1!L2;Liste;2;FAUX)


A+
0
pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009
26 févr. 2009 à 09:49
Merci pour vos explications, je vais de ce pas faire ce petit exercices pour bien comprendre.
hier j'avais un peu essayé avec une plage, mais à chaque test j'etais obligé de nommer de maniere dieffrente alors j'ai arreté.

Dans la formule quand on nomme une plage, il faut quand meme mettre la feuille devant ?

Fabien
0
Mabelle60 Messages postés 469 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 21 juin 2017 130
26 févr. 2009 à 09:55
Salut
A partir du moment ou ta plage est nommée, tu peux l'utiliser sans identifier la feuille devant.
Seul point d'attention, si tu souhaites ajouter des valeurs dans ta plage, ne pas les mettre à la suite.
Ta plage définie s'arrête à la dernière ligne de ta plage de départ, quelque soit le nombre de valeurs ajoutée ensuite.
Pour contourner ça, je fait Insérer/décaler vers le bas en prenant soin de ne pas choisir la première ni la dernière cellule de ma plage de départ, j'ajoute ma(mes) valeurs dans les champs vides et je trie.
L'autre solluction consiste à passer par Insertion/Nom/Définir et renommer ta plage, mais je trouve que c'est plus long.
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
26 févr. 2009 à 10:00
Re,


non pas du tout lorsque tu nommes une plage de cellule dans un classeur, le nom de ta plage peut être utilisée sur toutes les feuilles du classeur, c'est l'intérêt

pour faire simple, tu mets en surbrillance ta plage et fais insertion/nom/définir tu saisis le nom que tu souhaites donner exemple Liste et OK

Ta formule quelque soit la feuille sera

=RECHERCHEV(Feuil1!L2;Liste;2;FAUX)

A+
0
pepito79 Messages postés 12 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 26 février 2009
26 févr. 2009 à 10:14
J'ai bien compris le role des $, ma dernires question est : quelle est le role du FAUX à la fin ?
Dés qu"il trouve il arrete de chercher ?
0
Mabelle60 Messages postés 469 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 21 juin 2017 130
26 févr. 2009 à 10:24
Re
FAUX trouvera la valeur exacte ou n'affichera riensi il ne trouve pas
VRAI s'arrête à la valeurs se rapprochant le plus de ton critère de test si il ne trouve pas ou si ta liste de référence n'est pas rangée par ordre alphabetique. Tu n'est pas obligé de mettre VRAI ou FAUX, dans ce cas, la formule prendra l'option VRAI par défaut.
0