Rechercher : dans
Par :

[excel] Recherches multicritéres

Dernière réponse le 28 oct 2005 à 08:21:05 Lilau, le 15 aoû 2005 à 22:40:43 
 Signaler ce message aux modérateurs

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.

Meilleures réponses pour « [excel] Recherches multicritéres » dans :
[VBA] RechercheV Polyvalente VoirRECHERCHE POLYVALENTE Pour les accros et les inconditionnels des fonctions d'Excel, avant de crier au scandale, lisez les quelques lignes suivantes. La RechercheV d'origine a beaucoup de limites: La colonne de la donnée doit être avec un offset...
[Excel] Colorer des cellules sur conditions VoirIl existe dans Excel des fonctions très pratiques mais peu connues et peu utilisées. Exemple : vous souhaitez qu'une cellule se colore automatiquement en rouge (ou autre mise en forme de police, de bordure, de trame) selon une condition : un...
Eviter les doublons dans Excel VoirEviter les doublons lors d'un encodage dans un colonne de feuille excel: prendre le format conditionnel sur le première cellule sous les titres (par ex A2) choisir la formule suivante : =NB.SI($A$2:$A$21;A2)>1 mettre là la couleur de fond...

2

tompols, le 16 aoû 2005 à 12:59:18

Salut,

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

A+

Répondre à tompols

3

Lilau, le 23 aoû 2005 à 18:17:14

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

Répondre à Lilau

4

tompols, le 23 aoû 2005 à 18:44:15

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+

Répondre à tompols

6

Lilau, le 25 aoû 2005 à 10:46:53

Salut ,


Voici mon mail lilau1@free.fr En te remerciant

Répondre à Lilau

vince75, le 16 aoû 2005 à 15:52:02

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.

Répondre à vince75

5

WhiteFang, le 24 aoû 2005 à 12:51:19

;-) 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

;-) Wild and Free

Répondre à WhiteFang

7

Lilau, le 25 aoû 2005 à 10:51:19

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

Répondre à Lilau

8

WhiteFang, le 25 aoû 2005 à 12:49:43
  • +3

;-)

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...

;-) Wild and Free

Répondre à WhiteFang

9

Lilau, le 27 oct 2005 à 14:00:20

Bonjour,

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

merci

Répondre à Lilau

10

WhiteFang, le 27 oct 2005 à 14:13:41

;-) Bin oui... Mais tu n'as pas avancé d'un poil depuis le temps ? Wild and Free

Répondre à WhiteFang

11

Armojax, le 27 oct 2005 à 14:51:23

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

Répondre à Armojax

12

Lilau, le 27 oct 2005 à 22:25:34

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!!!

Répondre à Lilau

13

 Armojax, le 28 oct 2005 à 08:21:05

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.

Répondre à Armojax