EXCEL COMPARER DEUX COLONNES VALEURS ?

Résolu/Fermé
MOHAPPY - 31 janv. 2011 à 12:53
 MOHAPPY - 2 févr. 2011 à 17:33
Bonjour, cher amis

SVP aidé moi , mon problème c'est un tableau en EXCEL composé de trois colonnes la 1er colonne contient une liste de valeur (N°BONS de produit X la sortie), la 2eme colonne contient une liste de valeur (N°BONS de produit X la réception ) , la 3eme colonne c'est pour afficher la différence entre les deux colonnes .

Exemple :

jai deux listes qui contient des numéros de bons , une de sortie et l'autre de réception , je veut faire la comparaison entre les deux liste en m'affichent dans la 3eme colonne
les bons qui manques entre les deux listes (afficher les bons qui ont pas était recevez )

Ca ressemble a ça :

BON SORTIE BON RECEPTION BON MANQUE

100 100 103
101 101 110
102 102
103 104
104 105
105 106
106 107
107 108
108 109
109
110


- A ce que je peut avoir une formule sous excel ou sous visuel basic qui me résoudre ce problème en sachant que je gère des centaine de bons par jours .

MERCI BIEN J ATTEND VOTRE REPONSE LE PLUS TÔT POSSIBLE MERCI ENCORE UNE FOIS

A voir également:

11 réponses

Bonjour,

Avant toute chose, essaie de faire des efforts sur l'orthographe car j'ai du mal à lire et à comprendre ce que tu me dis tel que tu écris.

Si j'ai bien compris,il te faut une macro.
Tu vas dans outils, macro, visual basic, tu insères un module et tu copies ce code :

sub bonsmanqués
dim a,b,c,bons as variant

sheets("sheet1").select 'remplaces sheet1 par ton nom de feuille
i=2 'va commencer par la ligne 2
j= 1 'va rechercher toutes tes valeurs de la colonne A
b=2 't'en occupes pas

do while cells(i,1)<>""
bons = cells(i,1)
a= 2
c = "manqués"
do while cells(a,2) <> "" 'va balayer ta colonne B
if cells(a,2) = bons then 'si ton bon est dans la colonne b
c="" 'je le déclare comme trouvé
a = 60000
end if
a=a+1
loop
if c <> "" then 'si ton bon n'a pas été trouvé
cells(b,3) = cells(i,1) ' je le mets dans ta colonne c
b=b+1
end if
i=i+1
loop
end sub

Lances cette macro, elle devrait fonctionner
10
Re,

macro modifiée :

sub bonsmanqués
dim a,b,c,bons as variant

sheets("sheet1").select 'remplaces sheet1 par ton nom de feuille
i=2 'va commencer par la ligne 2
j= 1 'va rechercher toutes tes valeurs de la colonne A
b=2 't'en occupes pas
columns(3).clear

do while cells(i,1)<>""
bons = cells(i,1)
a= 2
c = "manqués"
do while cells(a,2) <> "" 'va balayer ta colonne B
if cells(a,2) = bons then 'si ton bon est dans la colonne b
c="" 'je le déclare comme trouvé
a = 60000
end if
a=a+1
loop
if c <> "" then 'si ton bon n'a pas été trouvé
cells(b,3) = cells(i,1) ' je le mets dans ta colonne c
b=b+1
end if
i=i+1
loop
end sub
3
re, ca marche pas avec la commande "columns(3).clear" quand tu exécute le macro il efface après affiche bcp de numéros sur la colonne "C" alors je préfère gardé l'ancien macro ben a la fin je vous remercie énormément ta était passionne avec moi merci encore une fois ,si tu veut je peux avoir ton email si ca te dérange pas biensur .

salutation ,

Mohappy.
0
envois ton fichier sur cijoint.fr.
2
merci pour ton aide mais ca n'a pas marché vraiment par ce que avec cette formule que tu ma proposé :
=si(esterreur(rechercheh(A1;B:B;1;faux));"Bon manqué";"")

elle m'affiche pas les bons qui manque sur la colonnes C (par exemple).

en faite je l'ai essayé elle affiche sur toute les colonnes de C "bons manqué" je sais pas peut être elle ne fait pas la recherche .
en tous les cas merci pour ton aide encore une fois ;)
1

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

Posez votre question
bonjour,

Il faut que tu combines 3 formules :
rechercheh(valeurcherchée, tableau, numéro de colonne,faux)==> permet de chercher la présence d'une valeur
esterreur(valeur) ==> si ta valeur est une erreur

Ta formule donne ça avec la condition suivante :
bon sortie = colonne A; bon réception = colonne b;
bon manque : tu écris cette formule en C2 :
=si(esterreur(rechercheh(A1;B:B;1;faux));"Bon manqué";"")

en gros dès qu'un bon est en colonne A mais pas en B, tu auras "bon manqué"
0
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
31 janv. 2011 à 15:36
Salut,

La formule de melanie1324 est presque bonne en fait. Elle fait une recherche sur l'horizontal, or c'est sur la verticale qu'il faut l'utiliser.

La bonne formule est donc :

=si(esterreur(recherchev(A1;B:B;1;faux));"Bon manqué";"")

Et cela affiche "Bon manqué" dans la colonne C en face du bon qui manque de la colonne A.
0
MERCI melanie1324 et merci CHICO200987 ca marche avec la recherchev comme tu la dis mais dans le cas ou en veux comparé une colonne qui est a coté de l'autre par exemple la colonne A1 (123) et la colonne B1 (123) ca marche oui d'ailleurs je le faisais avec cette simple formule: =SI(A1<>B1;"manque";("c'est bon"))

mais si le nombre 123 ne ce trouve pas dans la colonne B alors elle m'affiche pas sur la colonne C que le numero 123 qui manque , ce que je veut c' est une formule qui cherche les nombres qui manque et les affiche sur une autre sachant que la liste dans la colonnes "A " et stables en nombre et ordonné par exemple du N° BON 100 jusqu'à 500 puisque c'est une liste des BONS de sortie, le problème c'est dans la liste de BONS de reception (colonne "B") qui d'habitude manque les bons reception .

note : juste pour vous mettre au courant moi je fait le contrôle des produit entré sortie , alors sur mon fichier excel je saisie les bons des sortie qui seront en ordre numérique normale après il me ramène un autre fichier excel qui contient les numero de bons reception alors je fait copie et je les colle sur ma feuille comme ca pour mieux me comprendre .

merci bcp mes amis de votre aide appréciés votre aide merci merci
0
bjr melanie , ben ce qui concernent mon orthographe je le confirme par ce que je suis un peu perturbé c'est dernier temps alors excuse moi svp bref pour le programme je l'ai exécuté ca marche merci bcp ,mais il y'a tjr un problème il affiche sur la colonne C les numéros qui manque de la colonnes B mais il affiche aussi des numéros qui sont disponible (par exemple le numero 110 y'auna sur la colonne B mais il est affiché sur la colonne C je l'ai fait comme essaye) je sais pas pour quoi il y a une petite erreur sur le programme je pense , si tu veut je t'envoie mon fichier pour jeté un coup d'oeil .

MERCI pour ton aide melanie

voila mon email si t'arrange de me contacté ,mohappy@hotmail.fr

merci encore une fois ;)
0
dsl je me suis trompé ton macros marche très bien impeccable je vous remercie infiniment juste que je retire ce que j'ai dis a propos de colonne "C" affichage des bons qui sont disponible sur la colonne "B", j'ai trouvé l'astuce après modification sur la colonne "B" (ajouté par exemple les numéro qui manque ) il faut toujours supprimé le contenue de la colonne "C" après 1er exécution pour affiché les nouveaux numéro sur la 2eme exécution j'espère que tu ma compris cette fois lol .

remarque: a ce que en peut modifier sur le programme en le rajoutant une commande qui supprime le contenus de la colonne "C" avant nouvel exécution du macros je sais pas a ce que c'est fesable par ce que moi ca fait un bon temps j'ai programmé avec delphi .
0
je veut juste rajouté un truc sur le module quand je veut compilé , sort une petite boite de dialogue qui indique "erreur de compilation , variable non définie pour le " i= " après quand j'ai enlevé "Option Explicit " (dans le champ d'écriture en haut avant le macros ) ça marche allé a bientôt salutation ;)
0
Moi, j'ai fait en fonction de ta demande. tu me dis qu'il faut effacer les valeurs de la colonne C, j'efface les colonnes C avant l'exécution de la macro.
Sauf que quand ca efface la colonne C, tu me dis qu'il faut garder les valeurs de la colonne c.
précise ta demande.
0
slt , non tu ma pas bien compris c'est pas grave je veux que quand j'excute le macro affiche les numeros qui manque sur la colonne C (ça c'est bon ) ,aprés ajouté des numeros sur la colonne B (exemple le macro affiche sur la colonne C que le N° 7100 alors ne se trouve pas dans la colonne B automatiqument en rajoute le N° 7100 sur la colonne B en excute le macro une autre fois le N° 7100 reste toujours sur la colonne ) alors il faut toujours apré modification vidé la colonne C avant nouvel excution jesper que tu ma compris

et ton email a ce que je peux l'avoir tu ma pas repondus

merci bcp salutation
0
Bonjour,

je n donne pas mon email pour la simple raison que je ne veux pas la donner.
Par contre avant de modifier, je veux être sure d'avoir compris.
1) tu as une colonne A et une colonne B
2) tu lances la macro qui compares A et B
3) Dans C, figurent tous les numéros qui sont dans A mais pas dans B

Don tu veux que tous les numéros qui sont dans la colonne C soient rajoutés dans la colonne B?
0
bjr en tous les cas merci comme même me donné ou pas tu est libre ;) moi javais juste besoin de toi sur un truc de programmation sur VB rien de plus bref merci encore une fois .

pour le macro je veux que quand il affiche les numéros sur la colonne C , et après que je modifie manuellement sur la colonne B et exécuté une autre fois les numéros rajouté sur la colonne B ne s'affiche pas une autre fois sur la colonne C puisque ils existe sur les deux colonnes A et B

SALUTATION
0