combinaison entre 2 tableaux

heparti

XLDnaute Occasionnel
Bonsoir,

Je vous expose mon problème. J'ai 2 tableaux (plusieurs milliers de lignes chacun). Je souhaite comparer le contenu de chaque cellule de la colonne C du tableau de base avec chaque cellule de la colonne C du tableau d'ajout.

Si une concordance est trouvée, il faut alors comparer la cellule de la colonne M de chaque tableau, et si elles sont différentes, créer une nouvelle colonne à la fin de celle existante dans le tableau de base en dupliquant le contenu de la cellule de la colonne M du tableau d'ajout.

Je souhaite également que tous les ajouts se retrouvent dans cette nouvelle colonne qui sera en colonne P.

Toujours dans la d'une première concordance, puis d'une deuxième concordance, rien de doit s'afficher dans la nouvelle colonne P.

Autre obligation, si le contenu de la cellule C du tableau d'ajout n'est pas présent dans la colonne C du tableau de base, il faut que la ligne entière du tableau d'ajout soit dupliquée à la fin du tableau de base (si possible d'une couleur différente - soit la police ou le fond).

Enfin, dernière obligation, si le contenu de la cellule de la colonne C du tableau de base ne se retrouve pas dans la colonne C du tableau d'ajout, il faut alors qu'un message apparaisse dans la colonne P nouvellement créée (par exemple : personne partie).

Je vous remercie pour votre aide.

Les tableaux en pièce jointe sont représentatifs des tableaux originaux que je ne peux pas joindre pour diverses raisons, et je pourrais adapter les propositions sur les vrais documents.
 

Pièces jointes

  • tab_de_base.xls
    22.5 KB · Affichages: 53
  • tab_d_ajout.xls
    23 KB · Affichages: 43

heparti

XLDnaute Occasionnel
Re : combinaison entre 2 tableaux

Merci Bebere pour ton aide, ça marche d'après les premiers tests que j'ai effectué à l'instant sur le tableau test.

Je vais transposer cette macro sur les tableaux originaux dans le week-end et je posterai les résultats grandeurs nature.

Franchement, chapeau bas pour cette macro. Je vais devoir me pencher sérieusement sur les macros car je vais en avoir besoin de plus en plus dans mon boulot.
 

heparti

XLDnaute Occasionnel
Re : combinaison entre 2 tableaux

J'ai fais le test et étant donné que les tableaux que j'ai mis à disposition ne sont pas tout à fait identiques (noms des colonnes concernées), j'ai quelques problèmes.

Les colonnes utilisées sur les vrais tableaux sont les colonnes 'D' et 'L'.

J'ai essayé de modifier la macro mais je ne suis pas arrivé à le faire correctement.

Si tu pouvais intégrer ces modifications dans une nouvelle macro afin que je puisse tester, ce serait génial.

Merci une nouvelle fois.;)

EDIT : en fait, quasiment toutes les lignes se rajoutent en rouge à la fin du tableau de base, même celles se trouvant dans les deux feuilles. La colonne dans laquelle je souhaite que soient reportés l'information en cas de changement est la 'U'. Cette colonne n'est pas complétée après exécution de la macro.

Faut-il que je t'envoie le tableau tel que l'original, avec le même nom et nombre de colonne qu'à l'origine pour que tu puisse adapter la macro ?

De plus, le format des données de la colonne n'est pas adapté. En effet, la colonne sur le tableau d'origine est composée de 12 caractères numériques, et j'ai adapté cette colonne en appliquant sur toute la colonne la formule suivante : =gauche(c2;7) afin que ne soient conservés que les 7 premiers caractères de chaque cellule.
 
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : combinaison entre 2 tableaux

bonjour Heparti
si tu parles de cette ligne:If base(lb, 3) = ajout(la, 3) Then
'colonne A à P correspond à 1 à 16
'pour base tu as 3 pour C tu changes en 4 pour D
'pour ajout, tu as 3 pour C tu changes en 12 pour L
If base(lb, 3) = ajout(la, 3) Then
devient
If base(lb, 4) = ajout(la, 12) Then
si ce n'est pas cela,tu expliques
à bientôt
 

heparti

XLDnaute Occasionnel
Re : combinaison entre 2 tableaux

Me revoici.

Afin que ce soit plus simple, je joints le fichier vide (nombre de colonne réel) avec des précisions dans certaines.

Les précisions utiles sont les suivantes :

- colonne C masquée car contenant à l'origine des données à 12 caractères, que je modifie en colonne D en ne conservant que les 7 premiers

- la première comparaison s'effectue avec la colonne D (n° OK)

- la seconde comparaison s'effectue en colonne L (Droits)

- le report éventuel de la cellule en colonne L 'Droits' de la feuille "Ajout" s'effectue en colonne S

- l'ajout des lignes présentes dans la feuille 'ajout' se fait en bas du tableau de base

- une mention éventuelle en cas de présente dans le tableau de base de la colonne D ET d'absence dans le tableau "Ajout" se fait en colonne S en affichant par exemple "supprimé"

- chaque mois, une nouvelle colonne sera générée en ajoutant les reports par rapport au tableau de base. Je pense par conséquent que la macro doit prendre en compte ce paramètre supplémentaire que je n'avais pas précisé à l'origine.

Merci de ton aide et du temps passé ;)
 

Pièces jointes

  • tableau_bebere test.zip
    10 KB · Affichages: 27
  • tableau_bebere test.zip
    10 KB · Affichages: 25
  • tableau_bebere test.zip
    10 KB · Affichages: 21

Bebere

XLDnaute Barbatruc
Re : combinaison entre 2 tableaux

Heparti
changements effectués
non testé
à bientôt
 

Pièces jointes

  • tableau_bebere test.zip
    14 KB · Affichages: 24
  • tableau_bebere test.zip
    14 KB · Affichages: 26
  • tableau_bebere test.zip
    14 KB · Affichages: 24

heparti

XLDnaute Occasionnel
Re : combinaison entre 2 tableaux

Merci Bebere,

Je viens d'effectuer les tests et ça fonctionne malheureusement pas.

J'ai bien une recopie des données de la feuille 'ajout' sur la feuille 'base', mais tout est recopié, sans distinction.

J'ai également le message "supprimé" qui apparait systématiquement en dernière colonne sur la feuille 'base', que les données comparées sur les deux feuilles soient identiques ou non.

Pour exemple, j'ai testé avec les données identiques sur les deux feuilles (30 lignes) et je me suis retrouvé avec les 30 lignes dupliquées sur la feuille 'base', en bleues.

Je pense que tu touches au but.

Merci, et bonne soirée.
 

Bebere

XLDnaute Barbatruc
Re : combinaison entre 2 tableaux

bonjour Heparti
faute corrigée
à bientôt
 

Pièces jointes

  • tableau_bebere test.zip
    15.9 KB · Affichages: 31
  • tableau_bebere test.zip
    15.9 KB · Affichages: 38
  • tableau_bebere test.zip
    15.9 KB · Affichages: 36

heparti

XLDnaute Occasionnel
Re : combinaison entre 2 tableaux

re-bonjour Bebere,

Je viens de tester à nouveau et j'ai toujours le problème de l'affichage du message 'supprimé' dans la dernière colonne.

De même, toutes les lignes de la feuille "ajout" sont reportées sur la feuille 'base', même quand les cellules comparées sont identiques.

Je suis désolé de cette mauvaise nouvelle.
 

heparti

XLDnaute Occasionnel
Re : combinaison entre 2 tableaux

Merci Bebere, j'ai testé aujourd'hui en conditions réelles, et après avoir adapté la macro à mes tableaux, tout fonctionne.

Je tiens à saluer tes connaissances qui me permettent ainsi de travailler plus rapidement et efficacement.
 

heparti

XLDnaute Occasionnel
Re : combinaison entre 2 tableaux

Me voici de retour, avec un problème lié aux résultats de la macro concernant le report des nouveaux présents dans la feuille 'ajout' sur la feuille 'base'.

Le problème est lié à la colonne C et donc la colonne D (que j'utilise pour afficher les données de la colonne C - les 7 premiers caractères).

En effet, la colonne C initiale (tableau 'base' et tableaux 'ajout') comporte 15 caractères composés ainsi :
- les 8 derniers caractères sont des 0 (zéros) qu'il est possible de supprimer
- les 7 premiers caractères sont composés d'au moins un zéro en premier voire d'autres zéros et peuvent se terminer par un ou plusieurs zéros.

Le résultat de la macro génère ceci :

61597300000000 (affichage : 6,15973E+13)

alors que la cellule d'origine est sous ce format : 061597300000000 (affichage : 061597300000000)

Le problème est que lors des exécutions suivantes de la macro, la comparaison abouti à un message erroné dans la nouvelle colonne ainsi qu'à l'ajout d'une nouvelle ligne sur la colonne base (une divergence apparait entre 061597300000000 et 61597300000000).

Merci. Une fois ce problème résolu, je pourrais valider la macro et transmettre les tableaux à mes responsables.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin