XL 2013 Combiner tableaux avec 1 colonne aux contenus communs, mais nb de lignes différents!

catp

XLDnaute Nouveau
Bonjour,

Je débute sous excel et n'ai jamais fait de macros. Je me creuse la tête depuis quelques jours sur un fichier que je souhaite réaliser. J'ai essayé de m'y prendre avec des TCD à plages multiples, mais je n'arrive pas à obtenir le résultat souhaité.

Mon fichier est composé de 3 feuilles de calcul comportant chacune 2 colonnes :
- La première : Colonne A et colonne B
- La deuxième : colonne B et colonne C
- La troisième : colonne C et colonne D

Chaque feuille de calcul comporte un nombre de lignes différent.

Je souhaite en fait intégrer les données de la 3ème feuille dans la 2ème feuille si la valeur de la colonne C est la même, et intégrer les données de la 2ème feuille dans la 1ère si la valeur de la colonne B est la même.
Une difficulté est qu'il faut donc intégrer des lignes supplémentaire :
- Une valeur de la colonne B peut correspondre à plusieurs valeurs de la colonne C
- Une valeur de la colonne C peut correspondre à plusieurs valeurs de la colonne D

J'espère que mes explications sont assez claires:(... savez-vous s'il est possible d'obtenir les feuilles souhaitées sans recourir à une macro?

J'ai ajouté mon fichier en pièce jointe, j'espère que ça aura marché! Au cas où : Document Cjoint

Merci d'avance pour votre aide, je patauge vraiment!:confused:
 

chris

XLDnaute Barbatruc
Re : Combiner tableaux avec 1 colonne aux contenus communs, mais nb de lignes différe

Bonjour

Les tableaux croisés dynamiques ne servent pas à cela.

J'ai recopié tes contenus TCD en liste et créé une requête Msquery pour afficher la liste résultante.
Code:
SELECT `'Intervention Kits intervention$'`.Intervention, `'Intervention Kits intervention$'`.`Kits intervention`, `'Kits intervention boites$'`.Boites, `'Boites choix boites$'`.`Choix boites`
FROM `E:\ZZ_Tempo\Forums\requete.xlsx`.`'Boites choix boites$'` `'Boites choix boites$'`, `E:\ZZ_Tempo\Forums\requete.xlsx`.`'Intervention Kits intervention$'` `'Intervention Kits intervention$'`, `E:\ZZ_Tempo\Forums\requete.xlsx`.`'Kits intervention boites$'` `'Kits intervention boites$'`
WHERE `'Intervention Kits intervention$'`.`Kits intervention` = `'Kits intervention boites$'`.`Kits intervention` AND `'Kits intervention boites$'`.Boites = `'Boites choix boites$'`.Boites
avec le chemin à adapter

Une MFC pour faciliter la lecture

Les choix de boîtes ne sont pas horizontaux. Cette partie serait faisable en VBA mais pas sûr qu'un tableau très large soit plus lisible...
 

Pièces jointes

  • requete.xlsx
    50.7 KB · Affichages: 31

catp

XLDnaute Nouveau
Re : Combiner tableaux avec 1 colonne aux contenus communs, mais nb de lignes différe

Waou, merci beaucoup, c'est génial:eek:!

Par contre sais-tu pourquoi certaines valeurs de la colonne "Boites", par exemple la valeur "SCIE" apparaissent plusieurs fois, avec du coup les choix boites répartis entre ces différentes lignes? (Document Cjoint les valeurs "SCIE" sont en jaune et les valeurs "choix boites" associées en vert)

Est-ce que tu saurais comment faire pour faire en sorte que les valeurs de la colonne "boites" n'apparaissent qu'une seule fois? Sinon en fait, si la valeur "SCIE" apparait 3 fois, il choisira la première valeur "Choix boites" disponible, pour chacune des "SCIE", et du coup enverra 3 boites "SCIE" pour 1 même intervention alors qu'il n'en faut en fait qu'une!

Je vais lire le tutoriel sur l'utilisation de MSQuery, histoire de pouvoir utiliser cette super requête!

Merci encore:eek:!
 
Dernière modification par un modérateur:

chris

XLDnaute Barbatruc
Re : Combiner tableaux avec 1 colonne aux contenus communs, mais nb de lignes différe

Bonjour

Pour éliminer les doublons éventuels et classer, modifier la requête
Code:
SELECT DISTINCT `'Intervention Kits intervention$'`.Intervention, `'Intervention Kits intervention$'`.`Kits intervention`, `'Kits intervention boites$'`.Boites, `'Boites choix boites$'`.`Choix boites`
FROM `E:\ZZ_Tempo\Forums\requete.xlsx`.`'Boites choix boites$'` `'Boites choix boites$'`, `E:\ZZ_Tempo\Forums\requete.xlsx`.`'Intervention Kits intervention$'` `'Intervention Kits intervention$'`, `E:\ZZ_Tempo\Forums\requete.xlsx`.`'Kits intervention boites$'` `'Kits intervention boites$'`
WHERE `'Intervention Kits intervention$'`.`Kits intervention` = `'Kits intervention boites$'`.`Kits intervention` AND `'Kits intervention boites$'`.Boites = `'Boites choix boites$'`.Boites
ORDER BY 1, 2, 3, 4

DISCTINCT élimine les doublons éventuels
ORDER BY 1, 2, 3, 4 classe les 4 colonnes

A noter que tu n'avais pas de doublon et que le même tri fait dans Excel aurait donné le même résultat mais tant qu'à faire...
 

Pièces jointes

  • requete2.xlsx
    50.7 KB · Affichages: 28
Dernière édition:

catp

XLDnaute Nouveau
Re : Combiner tableaux avec 1 colonne aux contenus communs, mais nb de lignes différe

Merci mille fois Chris !

En fait ce que j'appelais des doublons n'en étaient pas vraiment mais des boites communes à plusieurs kits intervention pour une même intervention. Mais grâce au tutoriel MSQuery du forum j'ai trouvé la solution en supprimant la colonne kits intervention de l'affichage de la requête, et en triant selon les colonnes 1, 2, 3.

J'ai aussi rajouté une autre colonne dans ma base de données pour pouvoir m'en servir sur tous mes blocs opératoires, avec un menu déroulant basé sur une requête recherchant dans la base de données tous les blocs opératoires différents (pour moi, c'est très fort...!)

Donc encore merci pour ton aide, je me suis éclatée à farfouiller dans ta requête, et j'espère devenir plus autonome en la matière, car ces requêtes sont bien pratiques !

Bonne journée à toi
 

Discussions similaires

Réponses
8
Affichages
582

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 185
dernier inscrit
Laurent.