Programme VBA trouvant une valeur répondant à des conditions ET/OU

Programme VBA trouvant une valeur répondant à des conditions ET/OU - VB/VBA/VBS - Programmation

Marsh Posté le 24-03-2013 à 08:59:16    

Bonjour à tous,
J'ai essayé de résoudre la problématique suivante à travers une requete SQL et une jointure de tables, mais cela s'est avéré insuffisant. Le VBA est mon dernier recours mais je suis plus que débutant en la matière.
Pour résumé, je dispose de 2 fichiers : une table CLIENTS et une table ELIGIBILITE.
La table CLIENTS contient le nom de plusieurs clients (national) et un ensemble de conditions (x3) qui les caractérise.
La table ELIGIBILITE contient les différents points d'éligibilité par région et les conditions auxquelles il faut répondre pour y appartenir. Cependant, une dernière condition, appelée RELATION ET/OU, précise si les conditions requises doivent s'accumulées ou pas. pour etre éligible.
Le but est de faire une jointure entre ces 2 tables sur les 3 conditions puis de voir à quelles conditions les clients peuvent légitimement prétendre.
Un exemple (fichier Excel) est joint à cette discussion et permet de mieux comprendre la solution recherchée (onglet 'résultats attendus') et la difficulté posée par la relation ET/OU (champ 'commentaire'). Mais ne pouvant attacher de pièces jointes je vais essayer de faire un copier/coller.
Merci pour votre aide car là je bloque... :o(
 
dagada75

Reply

Marsh Posté le 24-03-2013 à 08:59:16   

Reply

Marsh Posté le 24-03-2013 à 09:02:06    

Table Clients
Client Condition1 Condition2 Condition3
C1 A B 01
C1 A B 03
C1 01 03 02
C2 X Y Z
C2 A B 01
C3 A B 02
C3 03 A B
C3 03 A 02
C4 A B 01
C4 A B 02
C4 A B 03
C4 01 02 03
C4 X Y Z
C4 03 A B
C4 02 01 03
 
Table éligibilité
Secteur Eligibilité Condition1 Condition2 Condition3 Relation  
EST 01 A B 02 ET  
OUEST 01 A B 01 ET  
OUEST 01 A B 02 ET  
OUEST 01 A B 03 ET  
OUEST 02 A B 02 ET  
OUEST 03 01 02 03 ET  
SUD 01 01 02 03 ET  
SUD 01 A B 03 OU --> éligible à "SUD - 01" si C1=01, C2=02, C3=03 ET C1=X, C2=Y, C3=Z ET C1=A, C2=B C3= 03 ou 02
SUD 01 A B 02 OU  
SUD 01 X Y Z ET  
SUD 02 03 A B ET  
SUD 02 03 A 01 OU  
SUD 02 03 A 02 OU --> éligible à "SUD - 02" si C1=03, C2=A, C3=B ET C1=03, C2=A, C3=01 ou 02
SUD 03 A B 01 ET  
NORD 01 01 02 03 ET  
NORD 01 02 01 03 ET  
 
Table résultats attentus
Client Secteur Eligibilité
C3 EST 01
C4 EST 01
C4 OUEST 01
C3 OUEST 02
C4 OUEST 02
C4 OUEST 03
C4 SUD 01
C3 SUD 02
C1 SUD 03
C2 SUD 03
C4 SUD 03
C4 NORD 01


Message édité par dagada75 le 24-03-2013 à 09:05:48
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed