Programme VBA trouvant une valeur répondant à plusieurs conditions ET/OU
2 réponses
dagada75
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 éligiile
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 attaché de pièces jointes je vais essayer de faire un copier/coller.
Merci pour votre aide car là je bloque... :o(
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
dagada75
Le dimanche 24 Mars 2013 à 08:55 par dagada75 :
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 éligiile 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 attaché de pièces jointes je vais essayer de faire un copier/coller. Merci pour votre aide car là je bloque... :o(
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, C2, C3 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, C2=A, C3=B ET C1, C2=A, C3 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
Le dimanche 24 Mars 2013 à 08:55 par dagada75 :
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 éligiile
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 attaché de pièces jointes je vais
essayer de faire un copier/coller.
Merci pour votre aide car là je bloque... :o(
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
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 éligiile 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 attaché de pièces jointes je vais essayer de faire un copier/coller. Merci pour votre aide car là je bloque... :o(
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, C2, C3 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, C2=A, C3=B ET C1, C2=A, C3 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
Gloops
dagada75 a écrit, le 24/03/2013 09:05 :
table avec secteur, code secteur, condition 1, condition 2, condition
3, opérateur
J'avais un petit peu compris quelque chose à la lecture du texte, et puis il semble que ça ne soit pas confirmé par l'exemple.
Résultat, nous voilà mal barrés.
Notamment, là,
SUD 01 A B 03 OU --> éligible à "SUD - 01" si C1, C2, C3= 03 ET C1=X, C2=Y, C3=Z ET C1=A, C2=B C3= 03 ou 02
comment se fait-il qu'un champ "OU" soit expliqué par des "ET" ?
dagada75 a écrit, le 24/03/2013 09:05 :
table avec secteur, code secteur, condition 1, condition 2, condition
3, opérateur
J'avais un petit peu compris quelque chose à la lecture du texte, et
puis il semble que ça ne soit pas confirmé par l'exemple.
Résultat, nous voilà mal barrés.
Notamment, là,
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
comment se fait-il qu'un champ "OU" soit expliqué par des "ET" ?