Bonjour,
Je suis actuellement stagiaire , je suis dans un projet où je développe une solution en C# mais il m'est demandé d'effectuer des traitement sur excel par le biais de code.
J'ai déjà pu implémenter des fonctionnalités sur ce Excel mais il me reste cependant un problème que je n'arrive pas à régler.
Voila j'ai un fichier Excel configuré pour faire des traitements et c'est ce dernier qui contient du code vb. Ce fichier excel contient 3 feuilles. Le besoin que j'aimerais traiter c'est que lorsqu'on va coller des données dans la feuille 3, plus précisément dans la colonne A , B et C j'aimerais faire la correspondance entre les données de la colonne A de la feuille 3 (LD) et la 4 ème ligne de la feuille 2 (Formatage IM).
C'est à dire que si une valeur dans colonne A de la feuille 3 est la même qu'une valeur de la 4ème ligne de la feuille 2, il faudrait récupérer la valeur dans la colonne C de la feuille 3.
Sauf que le problème est que dans les cellules de la colonne A de la feuille 3, il n'y a pas par exemple l'unité "ppm" comme il peut y avoir dans la 4ème Ligne de la feuille 2 ce qui fait que la recherche ne fonctionne pas. J'aimerais faire en sorte que lors de la recherche on ne prenne que en compte ce qu'il y a avant "ppm"
Par exemple :
voici les données dans la feuille 2 :
voici les données de la feuille 3 :
J'aimerais que pour chaque valeur présente dans la colonne A de la feuille 3, le code fasse une recherche dans la 4eme ligne de la feuille 2 sans prendre en compte le "ppm" à la fin de chaque cellule. Si les valeurs sont les même et bien on copie la valeur de la colonne C de la feuille 3 correspondante et on la colle dans la 5ème ligne de la feuille 2.
J'ai fait le code pour la recherche, mais je n'arrive pas à intégrer le fait de prendre en compte tout ce qu'il y'a avant "ppm" dans la 4ème ligne de la feuille 2 . Pouvez-vous m'aider sur ce point ?
Voici le code que j'ai fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub Rechercher() For k = 2 To 50 ' plage des colones à traiter Sheets("Formatage_IM").Select Cells(5, k) = "=IFERROR(VLOOKUP(R4C" & k & ",LD!R1C1:R200C2,2,FALSE),"""")" 'Si on ne trouve pas on met blanc pour éviter #N/A 'On cherche la valeur de R1C1 Row 1 Colonne k, dans la table feuille LD de R1C1 à R200C2, la deuxième colonne Next End Sub
Merci de votre compréhension .
Partager