Recherche d'une valeur dans plusieurs colonnes

Bonjour à tous,

Au boulot, j'archive régulièrement des dossiers dans des boites numérotées. Je me suis constitué une "base de données" reprenant dans chaque colonne, le numéro des boites en première ligne, suivi, pour chaque boite des numéros de dossiers qui s'y trouvent (je joins le classeur en question pour que ce soit plus parlant). La deuxième ligne indique l'année de création du dossier.

Or, il arrive parfois que je doive ressortir un dossier archivé. Je souhaiterais donc pouvoir faire une recherche d'un dossier, et que le classeur m'indique le numéro de la boite dans laquelle se trouve ce dossier (et dans l'idéal l'année de création du dossier également).

Suite à mes recherches, j'ai essayé de réaliser ce projet à l'aide des fonctions RECHERCHEV, RECHERCHEH ou encore INDEX (combinée à EQUIV). Cependant, et corrigez moi si je me trompe, ces fonctions permettent d'effectuer une recherche dans une seul colonne, alors qu'il faudrait faire une recherche dans une plage de plusieurs lignes et de plusieurs colonnes. Et là : je sèche !

Auriez-vous une piste qui pourrait m'aider à mener à bien ce projet ?

Je vous remercie d'avance !

Bonsoir prowls,

çà te vas comme solution ?

Bonsoir,

Voilà une proposition.

La recherche peut se faire en partie, mais au plus c'est précis au plus la réponse est pertinente.

Merci à tous les deux pour vos réponses !!

Ginga999 : je ne trouve pas ou saisir la recherche dans ton classeur :s Qu'est ce que j'ai loupé ?

egg : Super ça a l'air de fonctionner ! Peux tu me commenter un peu le code VBA pour que je comprenne mieux la marche à suivre ?

Encore merci à tous les deux en tout cas, ce forum est vraiment une bénédiction !

Je n'avais pas envoyé le bon....

OK ! Un grand merci à tous les deux, ça fonctionne niquel, je vais décortiquer tout ça, ça peut servir !!!

C'est tout simple :

1 on définit la zone de recherche

2 un messagebox demande la référence

3 lance la recherche

4 gère l'absence de résultat

5 par rapport à la cellule trouvée renvoie les lignes 1 et 2 de la colonne

6 donne le tout dans un messagebox

Voilou !

Bonjour !

Je reviens vers vous car j'ai essayé de faire avancer un peu mon projet entre temps avec les infos que vous m'avez communiquées, mais je reste bloqué devant un obstacle : comment gérer l'absence de résultat d'une recherche sans que cela renvoie une erreur d'execution.

J'ai bien tenté de rédiger quelques lignes de codes en cherchant sur google... Mais en vain...

Je n'arrive pas à savoir comment indiquer dans la macro que le résultat de la recherche sera dénommé "resultat" et que si elle ne renvoie rien, alors il faut afficher une msgbox... (avec quelque chose du type : If resultat Is Nothing Then msgbox...)

Je vous laisse mon classeur avec les nouveaux userforms pour que vous puissiez y jeter un oeil...

(ps : vous constaterez aussi que je souhaiterais donner la possibilité à l'utilisateur de créer des nouvelles entrées dans la bdd, je sais qu'on est hors sujet ici, mais si vous avez des pistes je suis preneur )

Merci à vous !

Edit : changement du fichier joint

Bonsoir,

Voilà pour la gestion du "vide".

Tu veux pouvoir rajouter quoi et où (boite, année, dossier, sous quelle forme... ?

Bonsoir !

Merci à nouveau pour ton aide !

(Par contre, il semble que la recherche renvoie toujours le même résultat, la boîte 6, et je n'ai pas réussi à rectifier le tir )

En ce qui concerne l'ajout d'entrées. Il s'agirait d'ajouter des boîtes, et pour ces boîtes : l'année et les dossiers qui s'y trouveront.

Et il faudrait que ces données s'ajoutent à la colonne libre suivante dans le tableur !

J'ai préparé un userform (frmAjout) pour te donner une idée de la forme que ça prendra.

Voilà ! Merci encore !

C'est corrigé.

Dans "Ajout" si tu saisie une boite, ça te donne le contenu.

Il y a actuellement 1300 boites dont 90% sont vides. Quel intérêt d'en rajouter ?

Dans la forme actuelle, si tu changes les données (année et dossiers) d'une boite appelée, n'est-ce pas suffisant ?


Oups ! avec le fichier c'est mieux

Voici une proposition. En choisissant une boite, ça te donne le contenu.

Si tu veux modifier (bouton Modifier), ça te permet la saisie. Clic sur bouton Enregistrer.

Re-bonsoir Egg !

Nickel pour la recherche !

En fait, à l'origine quand j'avais créé ce classeur, je ne pensais pas encore à permettre la saisie de données via un formulaire, mais plutôt de pouvoir le faire "à la main". C'est pourquoi il y a autant de boîtes déjà présentes (j'avais prévu large, c'est vrai )... J'aurais en fait dû effacer les cellules inutiles avant de vous soumettre mon projet. Pour l'instant, au bureau, nous n'avons rempli que 35 boîtes.

L'idée serait donc que, quand nous allons en remplir une 36ème (et les suivantes), nous passions par ce formulaire (frmAjout) qui remplirait les colonnes suivantes.

En tout cas je te remercie sincèrement pour le temps que tu m'accordes !

Ben pour le moment, tu peux remplir 1300 boites...

Pour la suivante, tu me renvoies un petit message !

Content que ça te convienne.

Egg,

Si je comprends bien, quand je serai arrivé à 1300 boîtes (j'ai de quoi voir venir) il me suffira de modifier MaZone en élargissant à une colonne plus loin que AXI !

Concernant la saisie de données, les champs pour insérer des numéros de dossiers sont grisés, mais de toute façon c'est déjà un autre sujet. Ma question de base a été résolue !

En tout cas je le répète : un grand merci à toi !

Pour activer les zones, clic sur Modifier, clic sur enregistrer renvoie les données dans la base et désactive les zones

Bon et bien que demande le peuple ?

Excuse moi je n'avais pas bien compris la première fois !

Bonne soirée !!!

Rechercher des sujets similaires à "recherche valeur colonnes"