Forum Clubic

Base access et feuille excel

Bonjour à tous,
J’ai créé une base access dans laquelle j’ai une table matériel client reprenant le code client, les différents matétiels, les N° de série…

J’ai une feuille excel nommée “info” à l’intérieur d’un classeur sur laquelle je souhaite faire apparaître tous les matériels existants chez un client.
A l’ouverture du classeur je fais un import données externes de ma base Access, et j’ai donc un tableau dons les colonnes sont :
Code Client / Matériel / Marque / Type / N° de série …

Si je fais une recherche V sur le code client je ne récupére dans ma feuille info que le premier matériel trouvé dans la feuille données externes.
Avez-vous une solution?

D’avance merci

RechercheV, c’est fait pour remplir une cellule, donc normal que tu ne récupères qu’une seule valeur

Ensuite tout dépend de ce que tu veux faire, mais si c’est pour visualiser les lignes ayant le même code client, tu peux peut-être tout simplement utiliser un filtre automatique sur la colonne Code Client ?

Ma feuille info doit me permettre de récupérer les infos sur le matériel et être la source pour renseigner d’autres cellules dans d’autres feuilles du classeur.


Le filtre sur l'import données externes ne peut pas être utilisé car cette base sert à plusieurs personnes et toutes n'ont pas accès à ces fonctions.

Dans ce cas, il faut que tu t’écrives ta propre fonction de recherche personnalisée :
la première cellule cible sera remplie avec l’équivalent VBA de recherchev(), appliquée à l’ensemble de ta colonne Code client
la deuxième fera la même chose, mais en ne cherchant que dans les lignes suivant celle qui aura été retenue la première fois
et ainsi de suite.

as-tu un exemple ? pour moi tout ça c’est un peu de l’abstrait…

Pour moi aussi c’est de l’abstrait pour le moment, mais je pense que ce ne serait pas très difficile à mettre en place

L’idée, c’est de se créer un nouvelle fonction utilisable dans les cellules.
Pour l’exemple, on va l’appeler RechercheVx()
sa syntaxe serait RechecheVx(valeur_cherchée;table_matrice;no_index_col;valeur_proche;index_cellule-cible)
les 4 premiers arguments sont ceux utilisés par rechercheV(), le dernier est un nombre que tu incrémenteras de 1 à n pour distinguer les cellules résultat les unes des autres.

Pour ce qui est de l’écriture de la fonction proprement dite, il suffit d’écrire son code dans un module, comme pour les macros
Attention, c’est une fonction, pas un sub : il faut que ça retourne une valeur.

Si tu veux plus de détails sur un point ou sur un autre, (tout dépend de ton niveau d’expérience dans l’utilisation du VBA), il faudrait avoir une idée du comment se présentent tes données (copie d’écran ?) pour travailler sur un exemple concret.

Pour le moment, c’est ce qui me paraît le plus simple, mais d’autres auront peut être de meilleures solutions.