OVH Cloud OVH Cloud

Fusionner deux tableaux excel avec des conditions particulières

15 réponses
Avatar
dianekrystale
Bonjour,

Je me permet de venir vous consulter car je veux fusionner deux tableaux avec des conditions bien précises.

Je vais prendre un exemple pour illustrer mes propos. Mes 2 tableaux sont constitués de cette manière :

Tableau 1
Cible / Numéro d'échantillon / Début / Fin / Résultats en Plomb
Cible 1 / 1111 / 0 / 1 / 12.55
Cible 1 / 1112 / 1 / 2.5 / 12.98
Cible 1 / 1113 / 2.5 / 4 / 12.78
Clble 1 / 1114 / 4 / 7 / 12.01
Cible 23 / 1255 / 0 / 2.33 / 15.26
Cible 23 / 1256 / 2.33 / 3 / 16.02
Cible 23 / 1257 / 3 / 5.56 / 15.45
Clble 23 / 1253 / 5.56 / 8.05 / 15.96

Tableau 2
Cible / Début / Fin / Couleur / Classe
Cible 1 / 0 / 5.75 / Bleu / Classe 1
Cible 1 / 5.75 / 7 / Rouge / Classe 2
Cible 23 / 0 / 1.45 / Vert / Classe 2
Cible 23 / 1.45 / 3.45 / Jaune / Classe 3
Cible 23 / 3.45 / 8.05 / Marron / Classe1

J'aimerais incorporer le tableau 2 dans le tableau 1 en fonction des intervalles de début et de fin, ce qui donnerait au final :

Tableau final
Cible / Debut / Fin / Résultats en Plomb / Couleur / Classe
Cible 1 / 1111 / 0 / 1 / 12.55 / Bleu / Classe 1
Cible 1 / 1112 / 1 / 2.5 / 12.98 / Bleu / Classe 1
Cible 1 / 1113 / 2.5 / 4 / 12.78 / Bleu / Classe 1
Clble 1 / 1114 / 4 / 7 / 12.01 / Bleu-Rouge / Classe 1-Classe 2
Cible 23 / 1255 / 0 / 2.33 / 15.26 / Vert-Jaune / Classe 2-Classe 3
Cible 23 / 1256 / 2.33 / 3 / 16.02 / Jaune / Classe 3
Cible 23 / 1257 / 3 / 5.56 / 15.45 / Jaune-Marron / Classe 3-Classe 1
Clble 23 / 1253 / 5.56 / 8.05 / 15.96 / Marron / Classe 1

Voilà je pense qu'avec un exemple, mon problème doit être plus facile à comprendre.

J'ai fait des recherches sur votre site et sur internet mais, je n'ai pas trouvé de solutions et je ne sais pas comment m'y prendre. Je précise que je ne maitrise pas du tout le code VBA ni les macros et cela est difficile pour moi.

Je vous remercie d'avance pour l'aide que vous pourriez m'apporter.

Dianekrystale

5 réponses

1 2
Avatar
MichD
'--------------------------
Par exemple, si Début = 0 et Fin = 1 pour la Cible 1 dans le Tableau 1 alors
la
couleur est forcément Bleu et la classe Classe 1, car dans le tableau 2
l'intervalle de 0 à 1 m du tableau 1 est compris dans l'intervalle de 0 à
5,75 m
du tableau 2 (mais tout ça pour la cible 1).
'--------------------------

*****L’intervalle de 0 à 1 m du tableau 1 est compris dans l'intervalle de
0 à 5,75 m
du tableau 2. Mais le même intervalle est aussi comprise dans
l'intervalle
0 1,45 de cible23. Dans l'exemple que je viens de donner,
pourquoi la réponse
ne serait pas Vert? OU Bleu, Vert ? Est-ce que l'intervalle 0, 1
de cible1 doit être
comprise nécessairement dans un champ cible "Cible1"? Que doit-on
indiquer si
aucun intervalle n'est trouvé?

******Comme le nom dans le champ "Cible" peut être présent plusieurs fois,
est-ce
possible que l'intervalle de départ du tableau 1 ait plus d'une
correspondance
dans le Tableau 2?

******Est-ce qu'un des champs pour le tableau1 et 2 sont triés par ordre
croissant?

'------------------------------
Par contre pour l'intervalle suivant toujours dans le Tableau 1 et pour la
Cible
1 on voit que c'est différent, car Début = 4 et Fin = 7. Du coup cet
intervalle
du Tableau 1 est à cheval sur deux intervalles du Tableau 2, c'est à dire,
Début
= 0 et Fin = 5.75 et l'autre Début = 5.75 et Fin = 7. Dans ce cas, dans le
Tableau final on fait un composite et donc la couleur est à la fois Bleu et
Rouge, d'où le Bleu-Rouge et la classe est à la fois 1 et 2 d'où le Classe
1-Classe 2.
'------------------------------

*****Qu'est-ce qui se passe s'il y a plusieurs combinaisons possibles?
Doit-on les relevés toutes ?

P.-S. Lorsque j'aurai saisi réellement la nature du problème, je me réserve
le
droit de m'abstenir de répondre. Nous sommes dans le cadre d'un
forum,
je veux bien donner un bout de code, une explication... mais cela
doit
pouvoir se réaliser à l'intérieur d'un temps acceptable dont je suis
seul
juge! Pour une aide, c'est d'accord... mais je ne cherche pas un
deuxième
boulot!

MichD
------------------------------------------------------
Avatar
dianekrystale
Le lundi 16 Septembre 2013 à 12:56 par dianekrystale :
Bonjour,

Je me permet de venir vous consulter car je veux fusionner deux tableaux avec
des conditions bien précises.

Je vais prendre un exemple pour illustrer mes propos. Mes 2 tableaux sont
constitués de cette manière :

Tableau 1
Cible / Numéro d'échantillon / Début / Fin /
Résultats en Plomb
Cible 1 / 1111 / 0 / 1 / 12.55
Cible 1 / 1112 / 1 / 2.5 / 12.98
Cible 1 / 1113 / 2.5 / 4 / 12.78
Clble 1 / 1114 / 4 / 7 / 12.01
Cible 23 / 1255 / 0 / 2.33 / 15.26
Cible 23 / 1256 / 2.33 / 3 / 16.02
Cible 23 / 1257 / 3 / 5.56 / 15.45
Clble 23 / 1253 / 5.56 / 8.05 / 15.96

Tableau 2
Cible / Début / Fin / Couleur / Classe
Cible 1 / 0 / 5.75 / Bleu / Classe 1
Cible 1 / 5.75 / 7 / Rouge / Classe 2
Cible 23 / 0 / 1.45 / Vert / Classe 2
Cible 23 / 1.45 / 3.45 / Jaune / Classe 3
Cible 23 / 3.45 / 8.05 / Marron / Classe1

J'aimerais incorporer le tableau 2 dans le tableau 1 en fonction des
intervalles de début et de fin, ce qui donnerait au final :

Tableau final
Cible / Debut / Fin / Résultats en Plomb / Couleur / Classe
Cible 1 / 1111 / 0 / 1 / 12.55 / Bleu / Classe 1
Cible 1 / 1112 / 1 / 2.5 / 12.98 / Bleu / Classe 1
Cible 1 / 1113 / 2.5 / 4 / 12.78 / Bleu / Classe 1
Clble 1 / 1114 / 4 / 7 / 12.01 / Bleu-Rouge / Classe 1-Classe 2
Cible 23 / 1255 / 0 / 2.33 / 15.26 / Vert-Jaune / Classe 2-Classe 3
Cible 23 / 1256 / 2.33 / 3 / 16.02 / Jaune / Classe 3
Cible 23 / 1257 / 3 / 5.56 / 15.45 / Jaune-Marron / Classe 3-Classe 1
Clble 23 / 1253 / 5.56 / 8.05 / 15.96 / Marron / Classe 1

Voilà je pense qu'avec un exemple, mon problème doit être
plus facile à comprendre.

J'ai fait des recherches sur votre site et sur internet mais, je n'ai pas
trouvé de solutions et je ne sais pas comment m'y prendre. Je
précise que je ne maitrise pas du tout le code VBA ni les macros et cela
est difficile pour moi.

Je vous remercie d'avance pour l'aide que vous pourriez m'apporter.

Dianekrystale


Bonsoir Jacquouille,

J'ai précisé dans un message précédent qu'il y avait des blocages réseaux sur le web de mon bureau et donc des sites web interdits et non accessibles, ce qui est, malheureusement, le cas du site CIJOINT.COM. Donc je veux bien que tu coupes le cheveux en quatre mais oui j'ai une connexion en "CE SAINT LIEU" comme tu dis mais elle ne m'autorise pas à accéder à ce site.

Je travaille sur la version Excel 2010 et non pas sur celle 2003, ce qui explique que je puisse avoir plus de 100 000 lignes dans mes fichiers. Mais si on m'explique une macro sous excel 2003 je saurai la mettre sous Excel 2010. J'ai l'habitude de travailler sur les deux versions, car j'ai Excel 2003 sur mon ordi perso.

Les éléments communs entre les deux tableaux sont les cibles et ensuite les métrages (colonnes Début et Fin). Chacun des forages (Cible) démarre à zéro et va jusqu'à une profondeur finale, mais ce n'est pas toujours la même

Le premier fichier correspond à des analyses en plomb sur des échantillons. Ces analyses ont été effectués sur chacun des forages (Cible1, Cible23,....) avec des intervalles (métrages) qui peuvent fluctuer.

Le deuxième fichier représente une observation faite sur les forages (ex : la couleur), mais avec des intervalles différents (métrages).

Je voudrai donc dans le fichier final, conserver le premier fichier intacte en ajoutant une colonne avec l'information couleur.

Je sais que c'est que le programme est faisable mais je n'ai pas du tout d'expérience en VBA donc je ne connais pas les bonnes formules pour l'écrire.

Est-ce plus compréhensible expliquer comme ça?

Merci pour ton aide.

Cordialement
Avatar
dianekrystale
Le lundi 16 Septembre 2013 à 12:56 par dianekrystale :
Bonjour,

Je me permet de venir vous consulter car je veux fusionner deux tableaux avec
des conditions bien précises.

Je vais prendre un exemple pour illustrer mes propos. Mes 2 tableaux sont
constitués de cette manière :

Tableau 1
Cible / Numéro d'échantillon / Début / Fin /
Résultats en Plomb
Cible 1 / 1111 / 0 / 1 / 12.55
Cible 1 / 1112 / 1 / 2.5 / 12.98
Cible 1 / 1113 / 2.5 / 4 / 12.78
Clble 1 / 1114 / 4 / 7 / 12.01
Cible 23 / 1255 / 0 / 2.33 / 15.26
Cible 23 / 1256 / 2.33 / 3 / 16.02
Cible 23 / 1257 / 3 / 5.56 / 15.45
Clble 23 / 1253 / 5.56 / 8.05 / 15.96

Tableau 2
Cible / Début / Fin / Couleur / Classe
Cible 1 / 0 / 5.75 / Bleu / Classe 1
Cible 1 / 5.75 / 7 / Rouge / Classe 2
Cible 23 / 0 / 1.45 / Vert / Classe 2
Cible 23 / 1.45 / 3.45 / Jaune / Classe 3
Cible 23 / 3.45 / 8.05 / Marron / Classe1

J'aimerais incorporer le tableau 2 dans le tableau 1 en fonction des
intervalles de début et de fin, ce qui donnerait au final :

Tableau final
Cible / Debut / Fin / Résultats en Plomb / Couleur / Classe
Cible 1 / 1111 / 0 / 1 / 12.55 / Bleu / Classe 1
Cible 1 / 1112 / 1 / 2.5 / 12.98 / Bleu / Classe 1
Cible 1 / 1113 / 2.5 / 4 / 12.78 / Bleu / Classe 1
Clble 1 / 1114 / 4 / 7 / 12.01 / Bleu-Rouge / Classe 1-Classe 2
Cible 23 / 1255 / 0 / 2.33 / 15.26 / Vert-Jaune / Classe 2-Classe 3
Cible 23 / 1256 / 2.33 / 3 / 16.02 / Jaune / Classe 3
Cible 23 / 1257 / 3 / 5.56 / 15.45 / Jaune-Marron / Classe 3-Classe 1
Clble 23 / 1253 / 5.56 / 8.05 / 15.96 / Marron / Classe 1

Voilà je pense qu'avec un exemple, mon problème doit être
plus facile à comprendre.

J'ai fait des recherches sur votre site et sur internet mais, je n'ai pas
trouvé de solutions et je ne sais pas comment m'y prendre. Je
précise que je ne maitrise pas du tout le code VBA ni les macros et cela
est difficile pour moi.

Je vous remercie d'avance pour l'aide que vous pourriez m'apporter.

Dianekrystale


Bonsoir MichD,

Je ne cherchais pas à ce que vous fassiez mon travail. Je cherchais juste un coup de main car je n'arrive pas à trouver les formules qu'il me faut pour rédiger ma macro. J'ai déjà rédigé mon algorithme mais je ne sais pas comment le transformer en macro, c'est tout.

Je suis désolée si mes questions et mes réponses vous ont paru déplacer ou si elles vous ont laissé penser que je souhaitais que vous fassiez le travail à ma place.

Je vous remercie pour l'aide apporter.

Bonne soirée
Avatar
MichD
'------------------------------
Je ne cherchais pas à ce que vous fassiez mon travail. Je cherchais juste un
coup de main car je n'arrive pas à trouver les formules qu'il me faut pour
rédiger ma macro. J'ai déjà rédigé mon algorithme mais je ne sais pas
comment le
transformer en macro, c'est tout.
'------------------------------

Désolé du quiproquo! Je n'ai jamais voulu insinuer une telle chose.
Cela doit faire près de 15 ans que je fréquente ce forum et quelques autres.
Jusqu'à tout récemment, je me faisais un point d'honneur de trouver
une réponse satisfaisante aux demandeurs. Le hic, c'est que dans certains
cas,
les problématiques sont plus ardues et le temps consacré à la résolution
est plus important. Comme ma disponibilité est plus restreinte, j'ai pris
l'habitude (c'est tout récent) d'aviser le demandeur le cas échéant afin que
ce dernier n'attende pas indûment une réponse qui ne vient pas.

Ceci étant dit, tu as le droit de poser toutes les questions que tu désires
et autant de questions que tu veux. Je n'ai rien contre ce type de
questions,
encore faut-il avoir le temps de s'y mettre sérieusement.

MichD
---------------------------------------------------------
Avatar
Jacquouille
Bonjour Diane,
Je ne suis pas un spécialiste. j'arrive tout juste à satisfaire mes
problèmes, parfois avec l'aide des anges du forum.
Tu pourrais peut-être essayer avec une série de "IF" imbriqués.
C'est pas joli joli, mais ça fonctionne.
Pour ce faire, il faudrait connaitre les fourchettes....(si début compris
entre 0 et 5) et ( si fin compris entre 10 et 15) alors .....couleur "vert"
(si début entre 6 et 10) et (fin entre 16 et 20) alors ...couleur "brun"
... etc
A bientôt
Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"dianekrystale" a écrit dans le message de groupe de discussion :


Le lundi 16 Septembre 2013 à 12:56 par dianekrystale :
Bonjour,

Je me permet de venir vous consulter car je veux fusionner deux tableaux
avec
des conditions bien précises.

Je vais prendre un exemple pour illustrer mes propos. Mes 2 tableaux sont
constitués de cette manière :

Tableau 1
Cible / Numéro d'échantillon / Début / Fin /
Résultats en Plomb
Cible 1 / 1111 / 0 / 1 / 12.55
Cible 1 / 1112 / 1 / 2.5 / 12.98
Cible 1 / 1113 / 2.5 / 4 / 12.78
Clble 1 / 1114 / 4 / 7 / 12.01
Cible 23 / 1255 / 0 / 2.33 / 15.26
Cible 23 / 1256 / 2.33 / 3 / 16.02
Cible 23 / 1257 / 3 / 5.56 / 15.45
Clble 23 / 1253 / 5.56 / 8.05 / 15.96

Tableau 2
Cible / Début / Fin / Couleur / Classe
Cible 1 / 0 / 5.75 / Bleu / Classe 1
Cible 1 / 5.75 / 7 / Rouge / Classe 2
Cible 23 / 0 / 1.45 / Vert / Classe 2
Cible 23 / 1.45 / 3.45 / Jaune / Classe 3
Cible 23 / 3.45 / 8.05 / Marron / Classe1

J'aimerais incorporer le tableau 2 dans le tableau 1 en fonction des
intervalles de début et de fin, ce qui donnerait au final :

Tableau final
Cible / Debut / Fin / Résultats en Plomb / Couleur / Classe
Cible 1 / 1111 / 0 / 1 / 12.55 / Bleu / Classe 1
Cible 1 / 1112 / 1 / 2.5 / 12.98 / Bleu / Classe 1
Cible 1 / 1113 / 2.5 / 4 / 12.78 / Bleu / Classe 1
Clble 1 / 1114 / 4 / 7 / 12.01 / Bleu-Rouge / Classe 1-Classe 2
Cible 23 / 1255 / 0 / 2.33 / 15.26 / Vert-Jaune / Classe 2-Classe 3
Cible 23 / 1256 / 2.33 / 3 / 16.02 / Jaune / Classe 3
Cible 23 / 1257 / 3 / 5.56 / 15.45 / Jaune-Marron / Classe 3-Classe 1
Clble 23 / 1253 / 5.56 / 8.05 / 15.96 / Marron / Classe 1

Voilà je pense qu'avec un exemple, mon problème doit être
plus facile à comprendre.

J'ai fait des recherches sur votre site et sur internet mais, je n'ai pas
trouvé de solutions et je ne sais pas comment m'y prendre. Je
précise que je ne maitrise pas du tout le code VBA ni les macros et cela
est difficile pour moi.

Je vous remercie d'avance pour l'aide que vous pourriez m'apporter.

Dianekrystale


Bonsoir Jacquouille,

J'ai précisé dans un message précédent qu'il y avait des blocages réseaux
sur le
web de mon bureau et donc des sites web interdits et non accessibles, ce qui
est, malheureusement, le cas du site CIJOINT.COM. Donc je veux bien que tu
coupes le cheveux en quatre mais oui j'ai une connexion en "CE SAINT LIEU"
comme
tu dis mais elle ne m'autorise pas à accéder à ce site.

Je travaille sur la version Excel 2010 et non pas sur celle 2003, ce qui
explique que je puisse avoir plus de 100 000 lignes dans mes fichiers. Mais
si
on m'explique une macro sous excel 2003 je saurai la mettre sous Excel 2010.
J'ai l'habitude de travailler sur les deux versions, car j'ai Excel 2003 sur
mon
ordi perso.

Les éléments communs entre les deux tableaux sont les cibles et ensuite les
métrages (colonnes Début et Fin). Chacun des forages (Cible) démarre à zéro
et
va jusqu'à une profondeur finale, mais ce n'est pas toujours la même

Le premier fichier correspond à des analyses en plomb sur des échantillons.
Ces
analyses ont été effectués sur chacun des forages (Cible1, Cible23,....)
avec
des intervalles (métrages) qui peuvent fluctuer.

Le deuxième fichier représente une observation faite sur les forages (ex :
la
couleur), mais avec des intervalles différents (métrages).

Je voudrai donc dans le fichier final, conserver le premier fichier intacte
en
ajoutant une colonne avec l'information couleur.

Je sais que c'est que le programme est faisable mais je n'ai pas du tout
d'expérience en VBA donc je ne connais pas les bonnes formules pour
l'écrire.

Est-ce plus compréhensible expliquer comme ça?

Merci pour ton aide.

Cordialement
1 2