Bonjour à tous,
J'ai une demande très complexe à vous demander.
Je souhaite avoir un code VBA qui recherche une correspondance de nombre, je m'explique:
J'ai un fichier qui s'appel "CODE POUR VBA"
Dans ce fichier j'ai 10 tableaux voir image ci-dessous:
Ensuite, j'ai d'autres fichiers qui se trouve dans un dossier que je vais appeler "DOSSIER DE DESTINATION".
Les fichiers sont de mises en formes identiques voir image ci-dessous (les fichier s'appel classeur1, classeur2, classeur3 etc...)
J'aimerais que le code VBA me trouve une correspondance pour les nombres qui se trouve dans mes tableaux avec les colonnes qui sont dans mon dossier DESTINATION et que chaque recherche commence par la colonne B.
exemple:
Dans mon dossier DESTINATION, les fichiers ont beaucoup de colonnes, chaque colonne contient beaucoup de lignes, Ligne 21 a 30 mais je vais vous faire mes explications jusqu'à la ligne 24 et se sera pareil pour les lignes à suivre.
J'aimerais trouver les correspondances du premier tableau, et j'aimerais la trouver dans la ligne 21 de mon dossier
Ensuite, trouver les correspondances du deuxième tableau, dans la ligne 22
Ensuite, trouver les correspondances du troisième tableau, dans la ligne 23
Ensuite, trouver les correspondances du quatrième tableau, dans la ligne 24
Et lorsque la colonne a été trouvée, il ne doit plus chercher le nombre de la colonne qu'il a trouvé mais les autres colonnes, donc à ce moment il ne restera que 4 colonnes à trouver.
Exemple:
Dans une feuille de un de mes fichier excel j'ai une colonne avec ses nombres:
ligne 21 : 3
ligne 22 : 26
ligne 23 : 13
ligne 24 : 3
Chaque nombre est dans les colonnes de mes 4 premiers tableaux (pour cette exemple mais faudra le faire pour les 10 tableaux) donc, le code doit mettre dans un nouveau fichier la colonne entière de ce qu'il a trouvé.
Ensuite, il fait la même recherche dans mes fichiers mais on exclu:
- la 1ere colonne du premier tableau car le 3 a été trouvé cela veut dire qu'on a plus besoin de cette colonne c'est à dire que le script va exclure les numéros qui se trouve dans la colonne ou il y a un 3: il exclut donc les numéros 22 - 25 - 3
- la 3ème colonne du deuxième tableau car le 26 a été trouvé cela veut dire qu'on a plus besoin de cette colonne c'est à dire que le script va exclure les numéros qui se trouve dans la colonne ou il y a un 26: il exclut les numéros 19 - 26 - 4
- la 2ème colonne du troisième tableau car le 13 a été trouvé cela veut dire qu'on a plus besoin de cette colonne c'est à dire que le script va exclure les numéros qui se trouve dans la colonne ou il y a un 13: il exclut les numéros 14 - 39 - 13
- la 5ème colonne du quatrième tableau car le 3 a été trouvé cela veut dire qu'on a plus besoin de cette colonne c'est à dire que le script va exclure les numéros qui se trouve dans la colonne ou il y a un 3: il exclut les numéros 3 - 52 - 25
Donc il va rechercher:
- Un nombre dans les colonnes 2, 3, 4, 5 pour le 1er tableau c'est à dire 17 - 30 - 8 - 14 - 33 - 11 - 11 - 36 - 14 - 7 - 40 - 18
- Un nombre dans les colonnes 1, 2, 4, 5 pour le 2ème tableau c'est à dire 21 - 23 - 2 - 20 - 25 - 3 - 7 - 40 - 16 - 1 - 63 - 22
- Un nombre dans les colonnes 1, 3, 4, 5 pour le 3ème tableau c'est à dire 21 - 32 - 6 - 9 - 44 - 18 - 8 - 45 - 19 - 6 - 47 - 21
- Un nombre dans les colonnes 1, 2, 3, 4 pour le 4ème tableau c'est à dire 27 - 16 - 1 - 17 - 30 - 11 - 15 - 32 - 13 - 12 - 35 - 16
Et ainsi de suite.
Dans la logique il faudrait que le fichier final n'est que 5 colonnes.
Il faut savoir:
- qu'il n'y a pas d'ordre de recherche dans les tableaux.
- que si les nombres exact ne sont pas trouvés dans tous les fichiers, alors le script doit recherché la colonne qui se rapproche le plus du bon nombre dans la colonne et mettre en rouge le nombre qui n'est pas dans le tableau. Exemple:
Le script a trouvé 4 colonnes avec les bon numéros:
Première colonne trouvé:
ligne 21 : 3
ligne 22 : 26
ligne 23 : 13
ligne 24 : 3
Deuxième colonne trouvé:
ligne 21 : 7
ligne 22 : 7
ligne 23 : 9
ligne 24 : 1
Troisième colonne trouvé:
ligne 21 : 17
ligne 22 : 21
ligne 23 : 6
ligne 24 : 15
Quatrième colonne:
ligne 21 : 36
ligne 22 : 25
ligne 23 : 45
ligne 24 : 30
Pour trouver la cinquième colonne, si tous les numéros ne correspondent pas au tableau il extrait la colonne qui y ressemble le plus exemple:
ligne 21 : 33
ligne 22 : 22
ligne 23 : 32
ligne 24 : 1
Le 1 ne correspond pas à un des numéros restant dans le 4ème tableau, donc il est mis en rouge dans le nouveau fichier, mais il y a 3 numéro des tableau sur 4 qui ont été trouvé donc c'est celui qui se rapproche le plus.
C'est pour ça qu'il ne faut trouver que 5 colonnes c'est très important, c'est beaucoup de recherche mais c'est très important qu'il ne faut que 5 colonnes pour le résultat final.
Le nouveau fichier doit être créé au moment du lancement du code, et il doit être ouvert pour que ce soit moi qui l'enregistre dans le bon dossier.
Et dernière petite chose, ce sont de gros fichiers, donc si le code pouvez s'exécuter le plus rapidement possible ce serait le top.
J'espère que vous avez pu comprendre ce que je demande, n'hésitez pas à me poser des questions pour plus de renseignement.
C'est quelque chose de complexe je sais mais c'est pour mon travail, je vous remercie pour l'aide que vous allez m'apporter
***moved from Microsoft 365 and Office / Other / Unknown / Out of reach***