lasnoufle a écrit :
Tu peux pas tout simplement classer les deux tableaux par numero de contrat? Ca rend la comparaison bien plus simple (un seul parcours des deux tableaux en parallele): - un index pour J qui demarre a 1 - un pour J-1 qui demarre a 1 - tu compares les deux numeros de contrats entre J et J-1: - si c'est le meme contrat, tu compares les 20 autres champs et tu remplis ton troisieme tableau en consequence, puis tu incrementes tes deux indexs - si le num de contrat en J est plus petit que celui en J-1, c'est un nouveau contrat: tu remplis ton premier tableau et incremente l'index de J - si le num de contrat en J-1 est plus petit que celui en J, c'est un contrat supprime: tu remplis ton premier tableau et incremente l'index de J-1 - tu repetes ca jusqu'a arriver a la fin d'un des deux tableaux, puis tu "finis" en consequence: - si tu arrives a la fin de J, alors tout ce qui "reste" en J-1 c'est des contrats supprimes - si tu arrives a la fin de J-1, alors tout ce qui "reste" en J c'est des nouveaux contrats Fait comme ca ca m'a vraiment pas l'air insurmontable.
|
merci pour ta réponse
j'ai déja écrit un programme VBA comme ca mais c'est super long et mon excel plante à chaque fois
les contrats ont des numéros genre PIMCO-02 ou 12051 (mélange de lettres et chiffres ou que chiffres)
en gros ce serait un truc comme ca :
Code :
- for i=2 to tableJ.range("A50000" ).end(xlup).row
- for j=2 to tableJ-1.range("A50000" ).end(xlup).row
- if tableJ.range("A" & i) = tableJ-1.range("A" & j) then
- for colonne = 2 to tableJ.range("A1" ).end(xltoright).column
- if tableJ.cells(i,colonne) <> tableJ-1.cells(j,colonne) then
- je mets la diff dans le tableau 3
|
sauf que c'est super long
i (table J) passerait en revu 12000 noms de contrats
puis testerait les contrats table J-1 jusqu'à qu'il trouve (je mets un exit for quand meme )
une fois qu'il a trouvé il doit checker les 20 colonnes avec la troisième boucle et ensuite remplir un tableau de différence
je pense que c'est beaucoup trop long
merci pour les requetes, j'avais réussi pour les 2 premieres tables avec l'assistant de requete de non correspondance
mais c'est sur la table des différences que je sèche complétement
ou alors faudrait que je fasse une requete par colonne et que je trouve un moyen de tout rassembler dans une table après mais je suis naze en access
Message édité par HeisenberG75 le 28-02-2015 à 12:26:41