Mettre à jour un tableau selon un autre classeur avec VBA

Bonjour à tous et à toutes !

J'ai déjà posté une question la semaine dernière à laquelle on m'a répondu et qui m'a beaucoup aidé.

Je découvre VBA depuis quelques jours et je parviens à faire de petites choses, mais la, je suis bloqué.

Je vous explique mon "problème":

Dans le cadre de mon travail, nous avons un classeur qui comporte une bibliothèque de prix et un classeur ou on réalise le chiffrage (métré…)

Dans le classeur bibliothèque, j'ai les tableaux (selon 3 postes) dans une feuille "recueil" qui sont MAJ selon d'autres feuilles (ci-joint)

En gros, je souhaiterai que mes tableaux présents dans la feuille "recueil" se retrouvent dans le classeur "chiffrage" dans la feuille "Bibliotheque" MAIS cela sans avoir de lien du type: =[NOM_classeur]Feuille!$H$17 afin qu'ils soient "indépendants" (est ce possible ?)

J'ai ajouté quelques explications dans le fichier ci dessous, pour exemple vous pouvez me montrer avec le "poste 2", j'adapterai après dasn VBA pour les "postes 1 et 3".

Peut-être utiliser le même genre de macro que celle qui met à jour dans mon classeur "Bibliotheque" ?

N'hésitez pas à me dire si ce n'est pas clair !

Dans l'attente de vos retours, je vous souhaite une bonne journée !

Bonjour

pourrais tu apporter des précisions ? Voyons si j'ai bien compris

tu as une feuille recueil dans ton fichier source, et tu souhaite copier des informations dans la feuille Bibliothèque de ton fichier de destination.

tu souhaites copier toutes les colonnes de A a AL de feuille recueil vers la feuille bibliothèque ?

A quel moment doit se faire la copie ? à la demande ? (avec un bouton ?) systématiquement à l'ouverture du fichier chiffrage ? ou se trouve le fichier bibliothèque par rapport au fichier chiffrage ? dans le même dossier ?? un sous dossier ??

Edit : merci de préciser dans ton profil ta version d'excel... mais surtout si tu es sur MAC ou WINDOWS.. car cela a son importance quand on commence a manipuler des fichiers

Fred

Bonjour Fred,

Merci pour ta réponse ! Je vais préciser tout ça, je n'y avais pas pensé.

Je voudrai en effet copier les informations qui se trouvent dans mon fichier source (feuille Recueil) sous forme de trois tableaux (poste 1, 2 et 3) dans le fichier "chiffrage" dans la feuille bibliothèque.

Je souhaite copier toutes les colonnes de A à AL mais toujours sous forme de 3 tableaux.

La copie devrait se faire volontairement (avec un bouton).

Les deux classeurs se trouvent de base dans le même dossier MAIS lorsque l'on réalise un chiffrage, on copie le fichier de base dans un autre dossier, le fichier "chiffrage" va donc bouger mais le fichier source lui ne bougera pas de dossier.

Merci beaucoup pour ton aide, je suis la si y'a encore des questions !

EDIT: pas de soucis je fais ça

(Je suis sous windows avec la version 2019)

Re bonjour

ci joint une proposition

Fred

Re Fred2406,

Merci beaucoup pour ta proposition et pour ton temps ! C'est magnifique !

Je voudrais savoir:

étant donné que le fichier source sera toujours le même, est-il possible de ne pas a avoir à sélectionner le document lorsque l'on clique sur le bouton ?

Ou est ce que c'est obligé si jamais la source et le doc de travail ne sont pas dans le même dossier ?

Si jamais c'est possible, pourrais-tu ou m'expliquer comment adapter la macro ?Afin que le bouton serve vraiment de "Mise à jour"

Merci encore pour ton temps

Re

Dans ce cas ... nouvelle version avec le chemin en dur.. dans la macro... chemin a adapter évidemment a ton PC...

j'ai laissé l'ancien code... simplement mis en commentaire

Fred

Re,

Merci infiniment pour ton temps, ça fonctionne !

Bonne fin de journée à toi et bonne semaine.

Matzic

Bonjour fred,

Je reviens vers toi car je voudrai modifier un peu le code que tu m'avais envoyé.

Il marche très bien, cependant, je souhaiterai que la ligne avec "Désignation", "UNITE", … ne soit pas importée à chaque mise à jour et ce pour chaque tableau, est-ce possible ?

J'ai essayé dans le code de changer ".Copy sh. [P2]"mais ça ne doit pas être suffisant car j'ai un bug qui apparait.

De plus, je souhaiterai (je ne sais pas si c'est possible) conserver les MFC que j'ai appliquée sur la colonne date dans le fichier source.

Peux-tu m'aider ?

Merci d'avance pour ton temps

Je joints le fichier source (allégé pour la confidentialité)

3bibli-forum.xlsm (98.17 Ko)

Idem pour le fichier ou je souhaite changer modifier le code

Bonsoir

je viens de voir le message...

ci joint une proposition qui copie et colle ce que tu veux... y compris la mise en forme...

mais il y a 2 problèmes... comme tu décale le tout d'une colonne... par exemple dans le fichier source la date est colonne X dans ton fichier de destination c'est Y...

la mise en forme est bien copiée... mais fait référence à la colonne initiale X et pas Y.. reprendre toutes les mises en formes par code doit être possible... mais sais pas faire...

image

2e problème... soit cela vient de nos versions d'Excel différentes, ou le fait que tu as pris des couleurs exotiques... les couleurs de la mise en forme dans le fichier de destination ne sont pas conservées... les deux premières oui... mais pas le jaune pale ni le vert..

image

Fred

Bonjour Fred,

J'ai testé ta proposition et ça fonctionne parfaitement !

J'ai en effet mis les tableaux dans le même ordre (colonne) dans les deux classeurs, pour simplifier.

Merci infiniment pour ton temps !

Bonne journée et bonne semaine

Rechercher des sujets similaires à "mettre jour tableau classeur vba"