Copier-coller de tableau à tableau de certaines colonnes

Bonjour à tous,

Après plusieurs heures de recherche et de tests (je suis loin d'être expert ), je jette l'éponge et je fais appel à vous pour m'aider.

Dans le fichier joint, j'ai 2 feuilles :

  • "Base_infos" qui contient la liste complète de références (et informations associées), les colonnes oranges sont modifiables (Tableau Tbl_Base_infos)
  • "Détail" qui contient certaines références avec 4 informations non modifiables et les colonnes oranges dans Base_infos (Tableau Tbl_Détail)
  • Les 2 tableaux sont structurés
  • Les colonnes ne sont pas dans le même ordre
  • Dans "Détail", le nom de la colonne contient le nom de la colonne de "Base_infos" entre crochets -> ça j'ai traité

Je souhaite copier les colonnes oranges de la feuille "Détail" vers la feuille "Base_infos" lorsque la référence présente dans "Détail" est trouvée.

Mes points de blocage :

  • Je ne sais pas comment copier- coller de "Détail" vers "Base_infos" en utilisant les références des en-têtes de colonne de 2 tableaux
  • Déterminer de manière dynamique le nombre de colonne du tableau "Détail" car le nombre de colonnes peut varier (mais toujours avec des noms faisant référence à "Base_infos") -> moins important, je pourrai modifier à la main si besoin

J'espère que mes explications sont suffisamment claires.

Un grand merci d'avance pour votre aide !

12copie-infos.xlsm (135.94 Ko)

Bonsoir,

J'ai continué mes travaux et la copie de données fonctionne. Cependant, je voudrais ne traiter que les lignes visibles de l'onglet "Détail" si un ou plusieurs filtres sont actifs.

Dans la version de fichier jointe, s'il y a un ou plusieurs filtres de colonnes dans l'onglet "Détail", aucune valeur n'est copiée dans l'onglet "Base_infos".

Je suis aussi preneur d'éventuelles optimisations.

Merci d'avance pour votre aide.

6copie-infos.xlsm (142.96 Ko)

Bonjour

La macro essai dans le module 2 devrait répondre à ton problème

20copie-infos.xlsm (138.06 Ko)

A+ François

Merci Fanfan38 pour ton retour.

Ta proposition est effectivement plus optimisée que ce que j'ai fait. Cependant, les informations doivent être copiées sur les lignes existantes (pas d'ajout de ligne) de la feuille "Base_infos" en fonction de la valeur de la colonne "Référence".

Bonjour,

Je me permets un petit UP !

Bonjour

Tu as bien fait de faire un Up (tu étais passé aux oubliettes) lol

10copie-infos-v1.xlsm (137.96 Ko)

A+ François

Bonjour François,

Merci beaucoup pour ton retour rapide, ça fonctionne très bien

Je vais cependant essayer d'adapter ton code pour ne pas créer de colonnes supplémentaires dans Base_infos dans le cas où la colonne existe dans Détail mais pas dans Base_infos.

Je n'avais pas vu que tu avais changé le nom des colonnes de l'onglet Détail . Les colonnes de l'onglet Détails seront vraiment du type "blablabla[nom de la colonne]" et dans l'onglet Base_infos, les colonnes seront uniquement "nom de la colonne".

Donc pour le matching, c'est ce que j'avais essayé de faire dans ma macro initiale dans la boucle FOR de la ligne 31. Je vais essayer de refaire le même fonctionnement à partir de ton code, sinon j'appellerai à l'aide

J'y suis arrivé !

Je vous partage le résultat, ça peut servir à d'autres.

7copie-infos-v2.xlsm (135.01 Ko)

PS : Merci une nouvelle fois François

C'est encore moi car je m'en suis aperçu d'un souci en appliquant la macro sur mon vrai fichier.

Si je fais un filtre dans l'onglet "Détail" (par exemple en sélectionnant uniquement la référence 193), les données sont copiées sur la ligne de la référence 154 dans l'onglet 'Base-infos". Je me suis alors rendu compte que dans ce cas, la macro prend les valeurs de la première ligne de "Détail".

Si je filtre sur 193 et 299 dans "Détail", les données sont copiées sur 154 et 171 de "Base_infos" (les références des 2 premières lignes de "Détail")

Je pensais que SpecialCells(xlCellTypeVisible) ne prenait que les cellule visibles mais apparemment pas. Je suis perdu...

De ce que j'ai compris de mes recherches, il s'agit de gérer des plages discontinues. Hélas, je n'arrive pas à résoudre ce problème.

Pouvez-vous m'aider, svp ?

Bonjour

J'ai vu l'erreur. Dans la macro essai j'utilise [Tbl_Détails] pour trouver la ligne au lieu de a

13copie-infos-v2.xlsm (132.06 Ko)

A+ François

Bonjour François,

Oui, ça je l'avais vu et réussi à le corriger (mais pas rajouté le fichier, désolé).

Mon problème est que quand on filtre sur 2 références qui ne se suivent pas (ex : 171 et 299) dans l'onglet "Détail", il n'y a la première ligne référence (171 dans l'ex) qui se met à jour dans l'onglet "Base_infos", d'où apparemment le sujet des plages discontinues.

Est ce que ça correspond à tes souhaits

12copie-infos-v2.xlsm (132.50 Ko)

A+ François

Bonjour François,
En exécutant la macro que tu as modifiée, j'ai tout de suite une erreur :-(

Bonjour

Problème corrigé

29copie-infos-v2.xlsm (133.12 Ko)

A+ François

Nickel !!

J'ai effectué une batterie de tests et tout semble bon.

Encore merci pour ton temps François

Rechercher des sujets similaires à "copier coller tableau certaines colonnes"