Recherchev ou autre ?

gilou -  
 gilou -
Bonjour,
j'ai creé une base de données avec ajout de ligne (insertion) ce qui permet a la derniere saisie de se retrouver en haut du tableau ;cette saisie est agremeentée d'un n° a chaque ligne ( dans la macro : [a3] = [a2]+1 . jusque là pas de soucis . sur une autre feuille nommée :consult avec une liste de valid je pilote la f(x) RECHERCHE V qui me sort la derniere valeur recherche jusque la c'est normal ; maintenant je voudrai "extaire" non seulement :la dernere valeur enrgistrée pour un nom donnee mais en plus les 2 precedentes (en amont dans la base ) je sais que f(x) recherche ne trouve que la la valeur la plus proche du haut du tableau si elle apparait plusieurs fois ;cest ce que j'utilise pour trouver le dernier enregistrement ;alors question: comment faire pour trouver les 2 precedents le conernant
ainsi dans "consult" je pourrais voir a la demande les 3 derniers n° de facture et tout ce qui rattache
merci

13 réponses

ponpon
 
Bonjour,
Vos n° de factures sont triées (croissant au décroissant). La recherche vous renvoie le dernière valeur, donc les 2 qui précèdent sont [(Dernier N° facture)-1] respectivement [(Dernier N° facture)-2].
0
gilou
 
bonjour
merci d'avoir repondu ;pouvez -vous me preciser ou je dois utiliser votre reponse logique
1) soit dans la fenetre "valeur cherchee" def(x) RECHERCHE : ce qui m'impose de creer une nouvelle colonne
dans la matrice pour que ça marche (c'est pas grave j'ai de la place)
2) soit dans un code ( mais j'y crois pas)
de plus je n'ai pas connaissance de l'utilisation des [.....] dans les fonctions exel par contre les { } pour les matricelles
alors je compte sur votre gentillesse pour m'en dire plus ,à la limite redigez moi svp un exemple car je rame à tout essayer (index , equiv, choisir(equiv ,concataination de n° d'ordre pour lisibilité dans la liste deroulante :bref rien de terrible ,et, surtout d'automatique .Avec ces resultats je compte faire une fenetre (plage de 3lignes) par laquelle (grace a 1 code ) je pourrai mettre à a jour la BD; pour l'instant je dois fouiller dans la BD
BON WEEK END
0
ponpon
 
Bonjour,
Vos explications sont trop confuses, il serait plus profitable de mettre votre exemple (une dizaine de lignes suffisent) sur https://www.cjoint.com/
Ou poster une copy de votre macro !
0
ponpon
 
Bonjour,
Vous avez parlé de macro, donc ma réponse concerne une instruction dans cet macro.
Vos explications sont trop confuses, il serait plus profitable de mettre votre exemple (une dizaine de lignes suffisent) sur https://www.cjoint.com/
Ou poster une copy de votre macro !
0
gilou
 
bonjour
en me creusant les meninges ce week end j'ai trouvé une solution à partir de INDEX( val; plge; EQUIV()-n) avec :n etant le nb de lignes à remonter dans la base triée donc -1,-2 -3 ......
je suis sur chantier ,je vous envoierai une copie du fichier dans la journée
l'affaire suit son cours ; bonne journée
0
gilou
 
re
j'ai trouvé 1/4 d'heure ; battons le fer
encore merci ;a+
http://www.cijoint.fr/cjlink.php?file=cj200910/cijtkvzLoy.xls
0
ponpon
 
Bonjour,
Je vous laisse découvrir la feuille [consult] : https://www.cjoint.com/?kuaiMDuvpu
0
gilou
 
bonjour
merci de m'avoir presenté cette fonction RECHERCHE V multi qui simplifie bien les choses ;comme je suis en xl 2003 je n'en disposais pas ,il a donc fallu que je compose . D'ailleurs exixte -t-il un moyen de l'integrer au panel des fonctions ? un peu comme sub function ou fait-elle partie de ces fonctions a tele charger
quant à moi je suis parvenu à modifier les valeurs de la base grace au code evenementiel intersect
je vous envoie une copie dans la journée pour eventuelles corrections ; neanmoins le sujet peut etre consideré comme resolu , encore merci
a+ bonne journée
0

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

Posez votre question
ponpon
 
Bonjour,
La fonction [RechercheVmulti] n’a rien à voir avec la version Excel utilisée.
Il s’agit d’une procédure personnel de type fonction (type : Sub, F unction et Propety ; de portée : Private ou Public) que j’ai ajouté dans le module [ponpon] du [VBAProject].
Comme elle est enregistrée dans le classeur, elle apparait dans les fonctions à disposition pour se classeur uniquement.
0
gilou
 
re
c'est bien ce qu'il me semblait ; a mon niveau xl je ne suis pas capable de me lancer dans la creation de fonctions specifiques à un besoin , peut etre un jour , ily a fort recement j'ai visé un de vos post utilisant un code recherche multi sur plusieurs colonnes . en attendant voici ce que j'ai bricolé pour parachever le" machin"
http://www.cijoint.fr/cjlink.php?file=cj200910/cijwymWmQl.xls
en annexe: j'aurais aimé utiliser un command button de la boite a outil controle pour ses capacites de mises en couleur,mais je n'arrive pas a le faire fonctionner avec mon code enregistré ; si vous pouvez m'eclairer.
bonne apres-midi
0
ponpon
 
Bonjour,
Concernant: en annexe: j'aurais aimé utiliser un command bouton de la boite a outil contrôle pour ses capacités de mises en couleur, mais je n'arrive pas a le faire fonctionner avec mon code enregistré ; si vous pouvez m'éclairer.
J’ai parcouru tout votre classeur sans trouver un bout de code pour la couleur.
Pouvez-vous expliquer se que vous désirez avoir exactement ?
0
gilou
 
bonjour
il y a maldonne , je vous demandais simplement comment affecter une macro enregistée (donc dans un module) à un command button issu de la boite a outil control , car ,apres des essais infructueux , je me suis resigné à utiliser ceux de: formulaire . C' est uniquement une question d ' esthetique

merci et, bonne journée
0
ponpon
 
Bonjour,
Pour affecter une procédure à un bouton de commande (contrôle formulaire et ActiveX) ou une forme prédéfinie, le principe est le même, clic droit sur la forme et clic sur Affecter une macro ….
Petit détail concernant les contrôles ActiveX il faut que le mode création soit activé.
0
gilou
 
bonjour
je vous parle d'un bouton issu de la boite à outils control ,lequel apres avoir activé le mode creation suivi du clic droit ne fait appraitre aucune fenetre :affecter une macro mais: visualiser le code ;de plus apres avoir collé le code; lors de l'execution ,il arrive un message d'erreur 1004
Deja merci bonne journée
0
ponpon
 
Bonjour,
Se serait plus simple de mettre le fichier tel que vous l'avez fait sur cjoint.com et je regarderai !
0
gilou
 
je vous transmet ce lien
http://www.cijoint.fr/cjlink.php?file=cj200910/cijN4ToAKT.xls
cela concerne la feuille" new"
bonne soirée
0
ponpon
 
Bonjour,
J’ai regardé la feuille [new] de votre fichier et le bouton de commande [c'est ce bouton qui doit remplacer l'autre] … mais se que doit réaliser la macro qui lui est attachée … ou est le code qui vous donne le message d’erreur 1004 ….. ?
0
gilou
 
bonjour ponpon
dans la feuille "new " c'est la macro d'enregisrement (module 1) ; celle qui apres avoir ajouter une ligne à la base(feuille base) copie/ colle les données de "new" vers "base"
de mon coté j'ai trouvé une solution plus que satisfaisante car en employant une zone de texte que je peut "decorer" au besoin ;il suffit de lui affecter la macro voulue et ; la j'insiste grace à un code selection_change
j'arrive après concataination a obtenir un comportement analogue a 'caption '
donc a defaut de bouton de boite a outil; une simple zone de texte fait la balle dans le cas d'un code issu d'un module
merci ;bonne soirée
desole pour reponse tardive car je suis sur chantier
0
ponpon
 
Bonjour,
Merci pour l’information.
En effet en survolant votre procédure [Sub memo_base()] , elle me semble qu’elle mérite une révision … Je vais vous la remettre sur le bon pied.
C’est pour demain après-midi
0
ponpon
 
Bonjour,
La partie enregistrement est adaptée : https://www.cjoint.com/?kBqXaedN51
0
gilou
 
bonjour
ah! oui ; c'est du bon travail ; c'est nettement superieur à mon bricolage; je ne m'etais contenter que d'utiliser le module enregistré sans le nettoyer quant à l'erreur de NB() .......
encore merci vos lumières m'ont fait progresser, bonne journée
0