Rechercher une référence dans une tranche
Bonjour à tous,
Je vous expose la situation, j'ai un fichier excel contenant les références des produits envoyer à différent magasin, Ces références son classé par tranche, Je m'explique: Par exemple un lot de 10 objet ayant chacun un référence. dans ce lot l premier objet a la référence 125, le deuxieme 126, le troisieme 127 et ainsi de suite. Ce lot a été envoyer au Magasin X. Pour aller plus vite, dans la colonne du magasin X, j'écrit la tranche de référence 125 à 135. Je fait de même pour chaque magasin.
Comment puis-je faire pour qu'en tapant par exemple 129, cela m'indique directement la case de la tranche concerné et ains que je puisse voir la colonne du magasin concerné ?
Evidemment mon fichier excel est beaucoup plus chargé ce qui me faciliterait la tache pour retrouver dans quel magasin a été vendu l'objet.
Merci d'avance pour votre aide !
Salut et bienvenue sur le Forum,
J'ai attendu un peu avant de te répondre afin de voir si quelqu'un d'autre tentait le coup. Mais sans fichier modèle, ça ne m'étonne pas trop que tu ne reçoives pas d'aide. Alors tu sais ce qui te reste à faire
Cordialement.
Merci pour ta réponse.
Comme demandé voici un exemple de fichier excel. Il est allégé, imaginez le beaucoup plus rempli mais le principe est la. Ce que je souhaite c'est qu'en tapant dans recherche la référence, je puisse trouver dans quel magasin elle se trouve.
Juste deux questions :
Tes références sont réellement inscrites telles que dans ton modèle (xxx à yyy) ou dans la réalité tu as un chiffre par cellule ?
Je ne comprends pas exactement ce que tu veux dire par là. Veux-tu inscrire la référence quelque part (où, dans une cellule, dans un formulaire ??) et que soit indiqué le magasin (où, dans une cellule, ailleurs ?) dans lequel se trouve cet article ?mous2mars a écrit :Ce que je souhaite c'est qu'en tapant dans recherche la référence .....
A te relire.
Alors les référence sont inscrite comme dans l'exemple par tranche car les entrer une par une serait trop long.
Ce que je veux dire par la phrase que tu as relevé, c'est que sur excel il y a la fonction "rechercher ou remplacer" qui permet de retrouver un mot ou un nombre dans la feuille excel. Ce que je voudrais c'est que quand je recherche par exemple "455" , il m'indique la cellule ou la tranche est de "400 à 460" pour qu'en regardant la colonne qui correspond, je sache dans quel magasin elle se trouve.
bonjour ;bonjour Yvouille
un essai avec une formule matricielle
tu saisis un nombre sensé etre dans le tableau >>>> bingo :le magazin
cordialement
Merci pour ta réponse mais cette formule ne fonctionne que si je recherche la référence de la borne inférieur.
Ex: sur la tranche "100 à 130" si je lui demande le 100 sa marche mais je demande le 122 il me dit un mauvais magasin et si je met 130, sa me donne une erreur.
En fait sa pourrait être une fonction comme dans le fichier que je joint mais le problème c'est que lorsque le tableau sera actualisé il faudra mettre à jour la formule ce qui est dérangeant.
Re,
J'avais commencé à chercher une solution par macro mais j'avais abandonné lorsque j'ai découvert que mon travail avait été inutile puisque Tulipe s'était entre temps également occupé de ce fil.
Finalement je présente quand même mon travail. Je voulais déjà te proposer de démultiplier les colonnes afin que ce soit plus facile, mais si tu veux garder ton format "xxx à yyy", il y aurait quand même des solutions. Cet exemple est à adapter selon ton fichier réel.
Cordialement.
re
helas en effet ; tu dois savoir que tes valeurs sont considerées comme du texte ; alors pour que cela marche
1) il faur deja "demonter ce texte pour en recuperer les valeurs numerique s
2) aller caser ces valeur s trouveées dans un autre tableau qui en gros coresspondra au premier mais avec le double de lignes
apres il sera possible de trouver reelement la colonne qui correspond a une valeur approchante a celle que tu saisis
Ce que tuas dans une cel il faut le mettre dans 2 sans le "à" ca veux dire qu'il faut jouer du SUBSTITUE ou du split ou du gauche (cherche .... ou du droite( cherche ......
c'est l'ennuiement de passer d'une saisie "WORLD" visuel a un modele EXEL : analytique
c'est "faisable " par formule mais je ne vois pas sans un tas de col intermediaires ; une veritable usine a gaz
le mieux c'est ce que te propose yvouille >>> saisir une val par cel et par colonne
bien sur si le tableau t'est transmis comme cela ;et que tu subis , il faudra bien trouver un moyen
cordialement
Je vous remercie pour vos réponse. Alors effectivement la methode d'yvouille me parait la meilleure mais comment doit-je procéder pour étendre à mes autres fichiers. Pouvez vous m'expliquer ?
Si cela est trop compliquer et long je comprendrais
Re-bonjour,
Pratiquement le même code, mais adapté à ton format "xxx à yyy".
Cordialement.
EDITION IMMEDIATE : Je n'avais pas vu ton dernier message lorsque j'ai placé ma réponse ci-dessus.
Si tu as plusieurs fichiers que tu utilises, il faudrait voir quelle est leur présentation, voir si l'on peut appliquer la même macro à tous ceux-ci.
Il faudrait également savoir quel est ton niveau en VBA afin de savoir ce que tu peux faire tout seul ou non.
Si tu ne peux pas placer tes fichiers réels sur le Forum, veux-tu déjà m'envoyer un message ou un courriel privé avec une adresse électonique à laquelle je peux te contacter ?
Bonjour,
Alors je te remercie déjà pour ce travail. JE suis ok pour t'envoyer le tableau original par mail mais il faut d'abord que je le termine donc je te contacterais de que ce sera fait. Concernant mon niveau en VBA, je suis un novice mais je me débrouille en informatique et je comprend assez vite. S'il y a un tutoriel quelque part je pourrais peut-être me débrouiller avec ou tout simplement apprendre car cela m'intéresse,.
Merci encore !
J'attends ton fichier par courriel privé.
En ce qui concerne le VBA, il y a une excellente base sur ce site
A te relire.
Salut,
J'ai bien reçu ton fichier en message privé et t'en remercie. Il me semble qu'il aurait été facile de remplacer les données sensibles par des données-bidon afin pouvoir placer ce fichier sur le Forum (par exemple en remplaçant le nom du premier client par "Client 1" puis en incrémentant cette cellule vers le bas et ainsi de suite).
Dans tous les cas je ne reconnais absolument rien de ton fichier-exemple placé au début de cette discussion. Où sont tes données de type "xxx à yyy" ??
A te relire.
En fait c'est pareil sauf que les clients sont écrit en ligne et que les référence sont inscrite dans la colonne référence. Je n'ai pas tout rempli dans les référence seulement 8 je crois. Je le poste ici avec les modifications que tu m'a conseillé.
Salut,
Voici un essai basé sur ton dernier fichier. J'ai placé la recherche en W2 et le résultat en X2. A voir si ça doit être déplacé ailleurs (tout n'est cependant pas possible).
Ou est-ce qu'une première fenêtre qui s'ouvre afin de demander quelle est la référence cherchée et une deuxième fenêtre afin d'indiquer le client concerné te conviendrait mieux ?
A propos, ton fichier fourni en privé ne comportait pas de références dans la colonne M.
De plus, une prochaine fois, place un fichier exemple plus proche de la réalité ; là j'ai dû créer un code pour ton premier exemple (références dans plusieurs colonnes différentes, clients en ligne, etc.) et pratiquement tout refaire aujourd'hui.
Cordialement.
Je suis désolé pour le travail en plus fourni mais je t'en remercie.
Il marche très bien jusqu'à une certaine ligne au delà de laquelle il m'invite à déboguer la Macro. Est-ce parce que j'ai ajouter des ligne Client ? Voici ce qui s'affiche avec la ligne qui commence par Ref_Gauche surligné en jaune.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim j As Integer
Dim Réf_Gauche As Long, Réf_Droite As Long
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("W2")) Is Nothing Then
Range("X2") = ""
For j = 2 To Cells(65000, 13).End(xlUp).Row
Réf_Gauche = Mid(Cells(j, 13), 1, WorksheetFunction.Search("à", Cells(j, 13)) - 2)
Réf_Droite = Mid(Cells(j, 13), WorksheetFunction.Search("à", Cells(j, 13)) + 2, 6)
If Réf_Gauche <= Target And Réf_Droite >= Target Then
Range("X2") = Cells(j, 2)
Exit Sub
End If
Next j
End If
End Sub
S'il n'y a qu'une modification d'écriture dit moi le je pense pouvoir le faire seul si sa peu t'éviter de refaire un fichier.
Encore merci !
Salut,
Apparemment tu as des références d'un autre type que celles que je présumais (sur la base de tes premières indications
Alors essaie d'effacer la ligne "Option Explicit" et cette ligne "Dim Réf_Gauche As Long, Réf_Droite As Long".
Si ça ne passe toujours pas, merci de me fournir un fichier réel dans lequel tu peux effacer toutes les colonnes sauf la colonne M, afin que je voie exactement ce que tu as comme type de références ou envoi-moi ton fichier réel par courriel privé.
A te relire.
Salut,
Au départ tu as indiqué que tes références étaient de type xxxx à yyyy . J’ai donc prévu un code qui cherche le « à » à l’intérieur de la cellule et qui récupère 1 à 6 chiffres au minimum à gauche du « à » afin de connaitre la plus petite référence de la plage et qui récupère 1 à 6 chiffres au minimum à droite du « à » afin de connaitre la plus grande référence de la plage.
Ensuite mon code contrôle si la référence recherchée est dans cette fourchette ou non.
Maintenant tu m’indiques en privé que tes références peuvent être de deux types supplémentaires :
xxx (au maximum combien de chiffres ?) et
xxx-xxx-xxx-xxx (Jamais d'espaces entre les nombres et le tirets ? Au maximum combien de chiffres par nombre ? Et combien de nombres au maximum par cellule ?)
Il devrait être possible de transformer mon code afin de prendre en compte également ces nouveaux types de références, mais avant de me lancer là-dedans, peux-tu me confirmer qu’il n’y a pas d’autres types de références possibles ?
Je n’ai pas compris ce que tu as voulu dire par là. Est-ce important par rapport à mes explications ci-dessus ?mous2mars a écrit :DAns la colonne M ce sont bien les références qui y seront inscrite je m'était tromper j'ai donc inversé les 2 colonnes. Il n'y en a pas pour le moment pour les xxxxxx tu peux mettre n'importe quoi pour le test. Si tu dessend dans le fichier, tu va voir qu'il y a ensuite le nom des clients internet et sur ces client les références ne se suivent pas toujours donc ne te préoccupe pas de "-" cela signifique que sa ne se suit pas. Ne prend en compte que pour ce qui se suit donc ou il y a un "à". J'ai laissé le Macro au fichier. [/attachment]
A te relire