EXCEL : macro pour comparer deux colonnes
pepito79
Messages postés
12
Statut
Membre
-
Mabelle60 Messages postés 492 Statut Membre -
Mabelle60 Messages postés 492 Statut Membre -
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
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:
- EXCEL : macro pour comparer deux colonnes
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
17 réponses
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.
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.
Merci beaucoup,
Pour la macro pas la peine, je pensais que c'etait faisable qu'avec une macro.
Encore merci, tu est au top
Pour la macro pas la peine, je pensais que c'etait faisable qu'avec une macro.
Encore merci, tu est au top
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.
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+
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+
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
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
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
=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
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);"")
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);"")
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+
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+
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
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
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
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
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à
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à
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+
$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+
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
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
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.
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.
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+
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+
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 ?
Dés qu"il trouve il arrete de chercher ?
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.
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.
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+
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.