Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour,
J'utilise cette formule pour rechercher dans ma base StockProduit :
=SI(B9="";"";RECHERCHEV(B9;Donn2;2;FAUX)), jusque là tout va bien.
Ce que je voudrais savoir c'est comment modifier ceete formule pour rechercher dans deux bases de données:
StockProduit et StockProduit2. J'avais pensé à ceci :
=SI(B9="";"";RECHERCHEV(B9;StockProduit;2;FAUX));SI(B9="";"";RECHERCHEV(B9;StockProduit2;2;FAUX)), mais sa marche pas.
D'avance merci
Michel
Re
un peu de précision, enfin j'espère :
J'ai deux bases de données, StockProduit et StockProduit2, deux userforms, le premier renvoie sur la feuillle base1 les infos contenus dans la première base (StockProduit), le deuxième renvoie les infos contenus dans la 2ème base (StockProduit2), la formule devrait me renvoyer l'info quand je clique sur l'un des boutons de soit l'userform1 ou soit l'userform2.
D'avance merci
Michel
J'aurai mieux compris la situation si tu avais mis des produits dans la seconde liste, ou des noms sur le second userform plutot que "Rien" sur le premier bouton.
Cette seconde base est-elle organisée exactement de la même manière que la première, autrement dit les produits sont-ils les mêmes listés exactement dans le même ordre ?
La formule recherche la référence contenue en B16 dans la colonne Stockproduit!A, va voir la valeur sur la même ligne en colonne Stockproduit!C (grace au 3 --> A, B, C). Si cette valeur est supérieure à 0, c'est qu'il y a encore du stock dans cette feuille pour ce produit. La formule affiche donc "Stockproduit", sinon elle affiche "Stockproduit2" (sachant que si il ni en a plus du tout en stock, ni en stockproduit, ni en stockproduit2, on a déja eu un message nous le signalant, et que la macro ne modifie pas la feuille base1 dans ce cas).
Malheureusement, cela n'est pas une solution totalement rigoureuse. En effet, la formule fait le calcul après la macro. Lorsque le stock en stockproduit passe de 4 à 3 par exemple, il ni a pas de problème, la formule donne la bonne réponse. Par contre lorsque le stock passe de 1 à 0, la formule voit 0, donc affiche "stockproduit2", alors qu'en réalité le dernier produit a été pris dans stockproduit. Elle devrait afficher "stockproduit", et la fois suivante pour ce même produit "stockproduit2".
Je ne vois pas pour le moment d'astuce pour éviter ce problème par formule, ou avec une colonne intermédiaire. J'y réfléchi, mais bon, je ne trouve pas...
Puisque tu as une macro, autant faire le boulot directement dans celle-ci (cf. fichier ci-joint). Il y a peut être moyen de faire mieux en VBA, mais ne m'y connaissant pas beaucoup dans ce domaine...
Au passage, et malheureusement, en faisant un peu tourner cette macro, j'ai trouvé un bug. A savoir :
* Tu sélectionnes plusieurs fois le même produit dans Stockproduit.
* Lorsque ce produit n'existe plus dans Stockproduit, on obtient le message "plus en stock". On fait "SUITE" pour accéder à l'USF correspondant à Stockproduit2.
* On sélectionne de nouveau le même produit et malheureusement on obtient de nouveau "plus en stock", ce qui est vrai pour Stockproduit, mais pas pour Stockproduit2.
Conclusion : Il y a encore du taf.
@ plus
P.S : J'ai modifié quelques formules dans les autres colonnes, pour faire plus simple.
Bonjour,
Le 2ème userform ne marque pas ce qui est dans la feuille StockProduit2, et c'est là le gros problème, c'est que je voudrais essayer de travaillé avec deux base distincte, alimenté avec 2 userform distinct.
D"avance merci pour votre aide
Michel
Effectivement, avant de s'occuper de la formule en D16, il faudrait peut être finir correctement la macro associée aux deux USF. Depuis le début, 3 pages sur le forum, nous tournons en rond parce que le problème n'est pas défini précisément.
Si dès le début, tu avais écris quelque chose du genre :
J'ai deux stocks (Stock produit et stockproduit2) dans lequel je pioche à l'aide de boutons placés sur deux userforms (on accède au second userform avec le bouton suite). Les produits sélectionnés se placent automatiquement sur la feuille base1. Les quantités sélectionnées sont mises à jour au fur et à mesure sur la feuille base1, et celles restantes sur les feuilles Stockproduit et stockproduit2, en face de chaque produit.
Si dès le début, tu avais fourni un fichier avec des onglets correctement remplis...
(Pour être plus précis, si j'ai bien compris, les produits ne sont pas forcément les mêmes, dans le même ordre, dans les deux stocks. Autrement dit, le produit sur la ligne 10 sur la feuille stockproduit n'est pas forcément le même sur la ligne 10 sur la feuille stockproduit2).
Le problème : Le second userform ne fonctionne pas correctement parceque...
Deux remarques :
*En survolant la macro, j'ai remarqué qu'elle va toujours, il me semble, vérifier l'état du stock dans stockproduit (avec place), d'où parfois le message "plus de stock" alors qu'on a voulu pioché dans stockproduit2, et qu'il y en a encore dans stockproduit2.
*Si les deux stocks ne comportent pas les mêmes produits, qu'ils ne sont pas placés dans le même ordre, et donc qu'une référence (un n° de ligne) peut correspondre à deux produits différents, la macro ne peut pas tourner correctement puisqu'elle utilise, il me semble, ce n° de ligne comme repère (cod et coder) pour se positionner correctement, modifier les bonnes cellules...
Ne m'y connaissant presque pas en VBA, je ne sais si je pourrais t'aider davantage.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD