[excel] Recherches multicritéres

Résolu
Lilau Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
Armojax Messages postés 1860 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis à la recherche d’un coup de main pour faire un programme en VBA avec des boucles Recherche probablement.
J’ai un fichier Excel avec 2 feuilles

La feuille 1 contient plusieurs lignes avec plusieurs colonnes (4 colonnes m’intéressent plus particulièrement).Il s’agit des colonnes Produit | Sous produit | Qté à recevoir | Date de réception.
Nous avons plusieurs fois des lignes avec |produit| sous produit| qté a recevoir identiques seule la date de réception change. Il peut également arriver qu’il y est 2 lignes identiques.

Sur la feuille 2 j’ai fait un calendrier avec un jour par colonne (format jj/mm/aaaa)

Dans les colonnes A et B sur chaque ligne j’ai les produits en colonne A et les sous produit en colonne B.

Je recherche donc un moyen de mettre la valeur des quantités à recevoir dans le calendrier qui correspond aux critères (Produit | sous Produit | Date réception) de la feuille 1 tout en additionnant les quantités à recevoir si on a 2 ligne identiques en feuille 1.
Je pense qu’avec une fonction SI à 3 conditions (produit, sous produit, date) et la fonction RECHERCHEV ou RECHERCHEH ça doit pouvoir marcher sinon en VBA.
Merci de votre aide.
A voir également:

6 réponses

tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
Salut,

Essaye avec la formule sommeprod.
J'ai fais un exemple em me basant sur ton post : http://cjoint.com/?iqnRnkUgx5

A+
0
Lilau Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,

Merci de t'etre penché sur mon probleme mais je n'arrive pas a lire ton fichier avec l'exemple. Essaye de voir si tu peux le joindre d'une autres façon.
A+ et merci
0
tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435 > Lilau Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,

Laisse moi une adresse mail et je t'envoie le fichier....Sinon, je ne vois pas le pb, je le récupere sans souci sur cjoint (télécharger le fichier)....

A+
0
Lilau Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   > tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention  
 
Salut ,


Voici mon mail lilau1@free.fr En te remerciant
0
vince75 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   5
 
L'idéal est peut-être de faire un tableau croisé dynamique (pas de code vb, pas de formules)

==> Mettre Produit, Sous-Produit en Lignes, Date en colonnes, et "Somme de Quantité à recevoir" dans les données.

Si l'on veut afficher toutes les dates, même celles qui n'ont aucune quantité à recevoir, il suffit d'ajouter des lignes dans la feuille 1 avec seulement la date (pas de produit, pas de sous produit pas de quantité), et sur le TCD, pour le champ "date" cocher l'option "Afficher les éléments dans données.
0
WhiteFang Messages postés 2063 Date d'inscription   Statut Membre Dernière intervention   204
 
;-) Salut !

L'idéal, je ne sais si ce serait un TCD, cela dépend de la puissance de la bécane (les TCD sont très gourmants en ressources), et si les données évoluent, ça risque de ramer à fond... Mais un TCD, c'est bien quand même ;-)

Par contre, le rapport poids/puissance de VBA élimine le reste ! Un petit bout de code VBA, c'est hyper léger et superpuissant... Sauf qu'il faut avoir "l'esprit" développeur, ce qui n'est pas donné à tous le monde...

Le principe, pour résoudre ce petit problème :

1) Récupérer les N° de lignes/colonnes de la feuille qui contient la source des données
2) Faire une petite "boucle" avec les calculs...
3) Ecrire dans la feuille destination

Normalement, cool à faire ... Simple et rapide

;-)
0
Lilau Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,


Je vois bien le principe mais c'est justement la ou je bloque pour le code Vba je suis vraiment un debutant en programmation et partir de rien c'est pas facile. Si quelqu'un avait un esprit developpeur ca m'arrangerais bien. Bonne journée a toi et merci
0
WhiteFang Messages postés 2063 Date d'inscription   Statut Membre Dernière intervention   204 > Lilau Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
;-)

Bon, allez... Cliques sur mon profil alors, tu auras l'adresse de mon WebSite, et toute l'aide que tu veux en VB/VBA, si tu comptes te lancer la dedans...

;-)
0
Lilau Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Y a t il quelqu'un qui peut m'aider pour cette foutue recherche??

merci
0

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

Posez votre question
WhiteFang Messages postés 2063 Date d'inscription   Statut Membre Dernière intervention   204
 
;-) Bin oui... Mais tu n'as pas avancé d'un poil depuis le temps ?
0
Armojax Messages postés 1860 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Lilau,

Je croyais ton problème résolu depuis longtemps !
Voici une solution sans macros, simple... mais peut-être compliquée à expliquer.

- Je suppose que dans ta feuille 1, Produit, Sous-Produit, Quantité à recevoir, Date de réception sont dans les colonnes A, B, C, D.
Ajoute une colonne dans cette feuille. Chaque cellule de cette colonne aura pour formule : A2&B2&D2 (pour la ligne 2, etc), qui crée une chaine unique avec Prod/Sous-Prod/Date.

- Donne un nom à toute la plage de cette nouvelle colonne (Par exemple, Prévisions).

- Dans la feuille 1 toujours, donne un nom à la plage des quantités que tu as dans la colonne C (par exemple : Qtés).

- Dans ta feuille 2, ajoute aussi une colonne. Sur le même principe, crée une chaine : A2&C2 (sans la date) comme dans la feuille 1

- Donne un nom à la plage correspondante (par exemple : Liste)

- Toujours dans la feuille 2, donne un nom à la plage que constituent les dates que tu as en entête de colonnes (par exemple : Echéancier).

Ensuite, mets dans les cellules de ta feuille 2 la formule suivante :
=SOMME.SI(Prévisions;Liste&Echéancier;Qtés)

Je t'ai mis un exemple ici :

http://cjoint.com/?kBoVPvheYs
0
Lilau Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup pour ta réponse ca va m 'être d'une trés grande utilité j'ai compris cette fois ci car j'ai pu télécharger ton fichier.

Merci encore!!!
0
Armojax Messages postés 1860 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Lilau,

Petite précision : si tu donnes des noms aux plages de cellules, le plus simple est de donner des noms aux colonnes entières (Prévisions, Liste, Qtés) ou à la ligne entière (Echéancier). C'est plus simple, et ça évite de les redéfinir quand on ajoute des données au début ou à la fin (contrairement à ce que j'ai fait dans le petit fichier).

Ajx.
0