Les fonctions de recherche

Résolu/Fermé
evelyno - 16 déc. 2010 à 18:16
 Patrice67 - 21 déc. 2010 à 16:11
Bonjour,
j'ai un fichier excel qui comporte plusieurs colonnes. sur la première colonne nommée référence, j'ai effectivement la liste des références de mes pièces de rechange. Sur la deuxième colonne nous trouvons la désignation de ces réferences. Devant chaque désignation est reprise sa référence sur la même ligne. Seulement les références se trouvant dans la première colonne ne correspondent pas aux désignations à côté sur la deuxième colonne. Ce que je voudrais c'est qu'en tapant une désignation sur une cellule quelconque, le système aille chercher la référence qui lui correspond dans la première colonne en se basant juste sur la même référence qui précède la désignation dans la deuxième colonne. je joindrais un tableau à mon prochain pour mieux me faire comprendre



5 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 413
16 déc. 2010 à 18:31
Bonjour

si j'ai bien compris essayez d'adapter cet exemple:
de A1 à A100 les codes à trouver
de B1 à B100, les ensembles code n°2 et désignation
Garder C1 pour entrer le code cherché dans le texte de la colonne B
en C2:
=INDEX(A1:A100;EQUIV("*"&D1&"*";B1:B100;0);1)
cette formule devrait vous ressortir la valeur de A pour la ligne où le code indiqué en D1 est contenu dans la colonne B
Est ce ça que vous cherchez?

crdlmnt



0
Il faut dire que vous ne m'avez pas tous ratés pour avoir posté à double reprise ma préoccupation. Disons que je n'avais pas toujours reçu de mail, alors je me suis proposé de faire un second envoi. Désolé. Vaucluse, j'ai tapé votre formule mais je ne pense pas que ça m'aide. Votre formule me renvoie les codes que j'ai déjà dans la colonne A. Je vais me réexpliquer. Je veux par exemple qu'en tapant dans une certaine cellule l'ensemble 17801-54180 FILTRE A AIR, le système aille me chercher dans la colonne A le code 17801-54180 puisque c'est lui qui correspond le mieux à mon ensemble. Dans ma base de données, les colonnes A et B ne sont pas alignées dans le bon ordre. Nous avons par exemple en A1 15600-41010 aligné sur la même ligne en B2 que 17801-54180 FILTRE A AIR. Ce qui n'est pas juste. Alors j'aimerais rétablir l'ordre
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 413
Modifié par Vaucluse le 19/12/2010 à 20:04
Bonjour evelyno

Voyons, voyons... pas de fausses excuses, de toutes façons, on ne vous en veut pas, mais n'oubliez pas que les messages sont datés et comportent l'heure d'édition:
1) message 198h16 / 1° réponse 18h31 / Votre relance 18h37

Vous laisser 21mn avant la relance, ça c'est dur pour les bonnes volontés de CCM :-))))

ça , c'est pour le fun, passons aux choses sérieuses


si vous voulez éditer le code en colonne A qui débute le texte en colonne B, inutile dechercher dans la colonne A.
Deux options
1°) soit votre code est toujours composé du même nombre de caractères et alors en A2 entrez la formule:
=GAUCHE(B2;11) qui ressortira le code

2°) soit le code à un nombre de caractères variables, mais l'ensemble du code ne comporte pas d'espace
en A2
=STXT(B2;1;TROUVE(" ";B2;1)-1)
qui donnera le code seul.

il ne reste plus qu'à faire un copier collage spécial valeur sur colonne A pour effacer les formules et garder les bons codes.

Si j'ai bien compris cette fois, mais dans votre premier message, il s'agissait d'aller cherche la référence dans la colonne A alors que c'est la B qu'il vous faut...non?

bien cordialement
Ps si votre code ne correspond pas aux critères évoqués dans les deux options, revenez avec plus de précisions.





Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
Bonjour Vaucluse
Je pense vous avez résolu mon souci. désolé que nous ne nous soyons pas fait comprendre plus tôt. Je vous remercie pour votre assistance. Si j'ai encore un souci, je sais vers qui me tourner. Une fois de plus merci

Evelyn
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 413
Modifié par Vaucluse le 17/12/2010 à 09:21
C'est sans problème, n'hésitez pas la prochaine fois... à faire appel à tous les participants de CCM qui ont chacun leurs domaine de performances .
Bonne route
0
Salut les amis
Je reviens vers vous toujours avec mon pb expliqué plus haut dont vous m'aviez aidé à résoudre une grande partie la semaine passée. Seulement je rencontre un autre souci et cette fois-ci j'ai préféré vous joindre ci-dessous mon tableau réel, contrairement à la dernière fois. Mais je commence par me réexpliquer. J'avais extrait de mon logiciel informatique les données en jaune que vous avez dans mon fichier "bd". Ces données ont été exportées de plusieurs pages vers mon fichier excel tour à tour. Seulement toutes les lignes de la colonne A (N°) avaient leur correspondance dans la colonne F (Désignation) mais elles n'étaient pas en ordre. C'est-à-dire la 1ère ligne de la colonne A ne correspondait pas à la 1ère ligne de la colonne F et ainsi de suite. Ce qui était formidable c'est que la colonne F contenait l'ensemble N° - Désignation. Et grâce à vous et à la fonction =GAUCHE, j'ai pu dégager les six références de l'ensemble de la colonne F et j'avais mes N° qui étaient sur la même ligne (voir colonne G). Ce que je veux maintenant c'est compléter dans les colonnes H, I et J les autres infos, à savoir le stock phyique, le coût unitaire et le type de véhicule. En le faisant avec les fonctions RECHERCHEV, RECHERCHE et même EQUIV+INDEX, rien ne marche compte tenu du format. les données de la colonne G qui sont les mêmes que celles de la colonne A n'ont apparemment pas le même format et je n'ai pas dans les clonnes H, I et J les "stock phyique, le coût unitaire et le type de véhicule" qui correspondent à leurs n°. le colllage spécial non plus ne marche pas. Que faire ?


http://www.cijoint.fr/cjlink.php?file=cj201012/cij0isIxg8.xlsx
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 413
Modifié par Vaucluse le 21/12/2010 à 10:30
bonjour evelyn

pas grand chose à faire pour que ça marche:

vos références en colonne A sont suivies d'un tiret, et donc non conformes à celles éditées en G!ce n'est pas une question de format, mais de tiret!
le plus simple, car certaines ont des tirets, d'autres pas:
sélectionnez la colonne A
Edition / Remplacer
fenêtre du haut le tiret
fenêtre du bas rien
et OK les tirets vont disparaître et en H2 la formule:
RECHERCHEV(G2;A:B;3;0) renvoi bien 2435 (ligne 438)
en règle générale:
attention à la colonne A vous avez en bas de champ des valeurs de code qui ne correspondent pas du tout à ce que vous pourriez en G (plus de 6 caractères!)

crdlmnt
0
Salut cher ami
Merci pour votre disponibilité. Je vois que vous avez compris mon problème. Seulement, j'aimerais que vous sachiez que les tirets sur les 71 premières références de la colonne A ont été manuellement ajoutées par mes soins pour les rendre plus identiques à leurs semblables dans l'ensemble "n°-désignation" de la colonne F. disons qu'au départ elles étaient comme vous les avez transformées avec votre "edition/remplacer fenêtre du haut le tiret, fenêtre du bas rien". Je ne sais pas si nous obtenons le même résultat mais vous devez avoir dans la colonne A les n° sans les tirets mais également sans le zéro du début. C'est justement pour les afficher que j'avais mis les tirets (il s'agit pour la plupart des chiffres sans lettres). Si vous n'avez pas les zéros du début, les réf en A ne sont pas plus conformes à celles éditées en G. J'avais aussi réussi à avoir le bon coût unitaire en I pour la réf 0113F5. Seulement c'est eut-être parce qu'il fait référence au n° 0113F5 qui lui n'a pas perdu son zéro en A puisqu'il contient une lettre qui est le "F". Je n'ai pas plus de succès avec les références qui ne contiennent que les seuls numéros. Comme par exemple la deuxième ligne de G (012749) qui ne donne pas le bon résultat. J'ai même changé le format en A en choissant la catégorie "personnalisé" et en saisissant six zéros dans le champ. Mais RECHERCHEV ne marche toujours pas même après avoir obtenu 012749 en A et 012749 en G. D'où mon idée sur le format.
0
Vaucluse

Si je peux me permettre, par rapport à ce que je vous ai expliqué plus haut, je pense que le problème vient du fait que lorsque dans les colonnes G vous avez la formule =GAUCHE, la fonction RECHERCHEV et d'autres d'ailleurs ne connaissent pas de succès dans les colonnes H, I et J quand il s'agit des seuls chiffres. Par contre, en supprimant la cellule et en ressaisissant le même nombre, tout marche. Le problème est qu'il est très difficile de ressaisir manuellement le contenu des cellules de toute la colonne G contenant des chiffres.
0

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

Posez votre question
Bonjour evenylno

J'ai cette macro qui devrait faire l'affaire:

Sub traitement()
Dim i, j As Integer
i = 2: j = 2
Do
Do
If InStr(1, Cells(j, 1), Cells(i, 7), 1) Then
Cells(i, 8) = Cells(j, 3)
Cells(i, 9) = Cells(j, 4)
j = 2: Exit Do
Else
j = j + 1
End If
Loop Until Cells(j, 1) = ""
i = i + 1
Loop Until Cells(i, 7) = ""
End Sub

Pour l'installer tu fais un clic droit sur l'onglet de la feuille que tu veux traiter. Tu choisis Visualiser le code. Dans la fenêtre qui s'ouvre, tu colles le code et tu appuies dans la barre d'outils sur le triangle vert.

La macro va démarrer, elle prend la première valeur F2 et compare à A1, A2, A3 etc jusqu'à trouver le même code (même s'il ya un trait). Quand elle a trouvé elle prend les valeurs de la colonne C et D et les inscrit en H et I.
Elle prend ensuite la deuxième valeur en F3 et refait la même opération etc...

Je te conseille avant de faire cette opération d'enregister ton fichier

Cordialement Patrice67
0