Synchronisation partielle colonnes de deux fichiers
Bonjour à tous,
Je recherche actuellement une méthode pour synchroniser une partie d'un tableau commun à un fichier parent et enfant.
Pour expliquer de manière plus concrète avec les deux fichiers en exemple (ci-joint):
Le premier fichier : "sourcing list" (
) contient un tableau avec des informations de produits (références, descriptions, noms..).
Sur ce fichier, les colonnes B, E et F sont nécessaires pour mon deuxième fichier : "TDB Ventes" (
).
Je souhaite que ce deuxième fichier reprennent les trois colonnes pour les afficher dans son tableau en colonne B,C,D et que si j’ajoute une ligne dans le premier fichier, cette ligne s'ajoute également.
Mon problème est que les deux fichiers ont trois colonnes en communs, mais le reste des colonnes est différent. Il faudrait donc que toutes les lignes ce décalent si j’ajoute une référence dans le fichier principal pour que les informations remplies restent ordonnées.
Ces fichiers sont très volumineux et plusieurs personnes travaillent sur l'un ou l'autre mais pas les deux (à part moi
Auriez-vous une solution/piste s'il vous plaît?
Merci,
Cordialement
LVG25
Salut et bienvenue sur le Forum,
A quel moment faut-il synchroniser ces deux fichiers ? Au moment où toi tu travailles dessus ? A n’importe quel moment lorsque des utilisateurs de l’un ou l’autre de ces fichiers y modifie quoi que ce soit ?
Ou sont placés ces deux fichiers dans ton arborescence ? Dans un seul dossier ? Dans des dossiers différents ?
Si l’on crée une référence en concaténant les 3 colonnes, est-ce que ça crée une référence unique ou est-ce que deux ou plusieurs lignes peuvent avoir le même ‘Product group’ ET le même ‘item number’ ET le même ‘name ? ??
A te relire.
Bonjour,
Merci de votre réponse,
Il faudrait que le fichier B se synchronise à l'ouverture et rajoute les référence si il y a ajout, que j'en ajoute, ou que quelqu'un d'autre ajoute un produit.
Les références peuvent avoir le même product group mais pas le même nom ni référence.
Les fichiers sont situés dans deux dossiers différents.
Mon problème étant que chaque information des colonnes sur une ligne doivent rester solidaire, pour ne pas mélanger les information du tableau.
Une idée? :/
Re,
Tu utilises tous plein de noms pour désigner tes fichiers (‘Sourcing list’ et ‘TDB ventes’, A et B, premier et deuxième) et si cela est clair pour toi, ça l’est beaucoup pour moi. Merci donc d’utiliser exclusivement les noms réels de ces fichiers.
De même que tu utilises tous plein de noms pour désigner tes colonnes (lorsque tu dis que ‘’les références peuvent avoir le même product group mais pas le même nom ni référence’’, je ne sais pas trop de quoi tu parles). Merci alors d’utiliser – comme je l’avais fait moi – le nom exact des colonnes avec si nécessaire le nom du fichier concerné.
Ceci étant dit, je t’avais demandé si l’on pouvait créer des références uniques en concaténant les 3 colonnes, mais tu n’as pas vraiment répondu clairement. Alors la même question posée autrement : comment puis-je faire référence à une ligne dans les deux fichiers d’une manière exacte ? Est-ce que par exemple les numéros ‘item number’ sont des numéros exclusifs ? Sinon, est-ce que ces ‘item number’ combinés avec les références d’une autre colonne permettrait de créer des références exclusives ?
Tu dis que tes fichiers comportent beaucoup de lignes. Ca veut dire environ combien chacun ?
Si je t’ai bien compris, tu veux synchroniser le fichier ‘TDB ventes’ lorsque tu l’ouvres. Peux-tu alors me donner le chemin - dans ton arborescence – de ton fichier à visiter ‘Sourcing list’ ?
LVG25 a écrit :Auriez-vous une solution/piste s'il vous plaît?
LVG25 a écrit :Une idée? :/
Bien sûr, sinon je ne t’aurais pas contacté.
A te relire.
Bonsoir,
Merci de ta réponse, et désolé pour mon manque de précision...
Concernant les colonnes communes aux deux fichiers:
- La colonne "product group" permet aux personnes de rechercher les produit par catégories et plusieurs lignes peuvent contenir le même terme.
- La colonne "supplier name": dans cette colonne qui référence les fourniseurs, un terme peut être le même dans plusieurs lignes.
- Les colonnes "supplier ref" et "item number" contiennent des références uniques (pas de doublons).
Pour expliquer un peut plus le mécanisme des deux fichiers:
- Deux personnes utilisent le fichier appelé "Sourcing list", ils y ajoutent les produits que l'entreprise souhaite proposer dans le futur, avec certaine informations qui n'est pas à partager (prix d'achat, nom exact des fournisseurs...)
- Quatre personnes utilisent le fichiers "TDB ventes", ce fichier leur permet de consulter les références nouvelles (ou existantes) et de mettre en place une stratégie de vente en fonction des approvisionnements. Ces personnes ont donc besoin d'avoir certaines informations des produits à vendre pour fixer leurs objectifs (les colonnes en commun).
Cette synchronisation (rajouter les produits) ce fait actuellement à la main, mais des erreurs/oublis arrivent parfois sur 1700 lignes par an.
Car un des problèmes, c'est que les personnes utilisant les fichiers font parfois des tris par "product group", "supplier name" pour faire leurs rapports, et il est ensuite très difficile de repérer les lignes manquante....
Concernant les deux derniers points:
- "Si je t’ai bien compris, tu veux synchroniser le fichier ‘TDB ventes’ lorsque tu l’ouvres." : tout à fait
- "Peux-tu alors me donner le chemin - dans ton arborescence – de ton fichier à visiter ‘Sourcing list’ ?":
2eme: Macintosh SSD:Users:lvg:salesforce:sales2015:[TBD ventes.xlsx]
Est ce ce que tu demandais? (Par contre le chemin risque de changer dans le futur car ces fichiers iront surement sur un intranet).
En espérant avoir été plus clair,
Je te remercie de te pencher sur mon problème !
Dans l'attente de te lire,
Cordialement,
LVG
Salut,
Désolé, je t’ai un peu laissé de côté, mais j’étais pas mal pris ces temps.
Il y a des tas de trucs que l’on pourra faire différemment par la suite - si le début de solution que je te propose te convient - mais afin de simplifier les choses, je te propose de commencer ainsi.
Tu trouveras le chemin de ton fichier ‘Sourcing list’ en allant dans ton arborescence et en effectuant un clic droit sur le nom du fichier puis en choisissant un texte qui doit être ‘Propriétés’ (je suis sur un ordinateur germanophone à l’instant et chez moi ça correspond à ‘Eingeschaften’ sur l’image ci-dessous).
Le chemin est ce qui est indiqué chez moi sous ‘Ort’, donc mon chemin est ‘U:\Privé’. Probablement que ton chemin sera bien plus long. A cet endroit, tu copies ce chemin et tu le colles – comme je l’ai fait dans le fichier ci-joint – dans la cellule E1 du fichier ‘TDB ventes’.
Dans la cellule D1 de ce même fichier, tu dois avoir le nom du fichier source, tel que je l’ai indiqué moi-même. Afin de pouvoir faire tes essais, je te conseille d’utiliser le fichier ‘Sourcing list_V1’ que je te fournis en annexe et qui a été modifié de manière à pouvoir tester divers cas. J’ai en fait simplement rajouté une nouvelle ligne au milieu des autres données (nouvelle ligne 63) ainsi que deux nouvelles lignes en fin de liste.
Le fichier source peut être ouvert ou fermé en début de macro. Il est pour l’instant automatiquement refermé en fin de macro.
Une fois que tout ceci est prêt, tu cliques sur le bouton ‘Actualiser’ mis en place dans le fichier ‘TDB ventes_V1’ ci-joint et tu devrais avoir les trois nouvelles lignes du fichier source qui apparaissent dans le fichier cible.
LVG25 a écrit :- Les colonnes "supplier ref" et "item number" contiennent des références uniques (pas de doublons).
Pour mes transferts, je me suis basé sur la colonne ‘item number’. Ma macro passe en revue toutes les lignes du fichier ‘Sourcing list_V1’ et contrôle si la même référence est dans les deux fichiers. Si non, les lignes manquantes dans le fichier ‘TDB ventes_V1’ sont rajoutées en fin de tableau.
LVG25 a écrit :Car un des problèmes, c'est que les personnes utilisant les fichiers font parfois des tris par "product group", "supplier name" pour faire leurs rapports, et il est ensuite très difficile de repérer les lignes manquante....
Je n’ai pas tout bien compris ce que tu expliques là, mais si ça crée des problèmes que certains utilisateurs modifient certaines choses, pourquoi ne pas les en empêcher ? Il existe 36 solutions afin d’éviter que certaines choses soient modifiées, selon votre manière de travailler. Par exemple ne laisser travailler les utilisateurs que sur des copies protégées ou en lecture seule ; empêcher l’enregistrement du fichier ; effectuer un tri automatique à l’ouverture ou à la fermeture du fichier de base ; effectuer une suppression des filtres mis en place à l’ouverture ou à la fermeture du fichier de base, etc.
LVG25 a écrit :Il faudrait donc que toutes les lignes ce décalent si j’ajoute une référence dans le fichier principal pour que les informations remplies restent ordonnées.
Si tu veux dire que tu peux rajouter des lignes dans le fichier source au milieu du tableau et qu’il faudrait qu’elles apparaissent dans le fichier cible également au milieu du tableau, il faudra que je modifie ma macro. Mais alors peux-tu me fournir deux fichiers exemples comportant un tel cas ? Car contrairement à ma simulation dans les deux fichiers que je te retourne, je ne pense pas que la numérotation se ferait avec un système alphanumérique (j’ai utilisé moi la référence 180 b).
Ce que l’on peut encore imaginer comme améliorations : une mise en forme des données ajoutées dans le fichier cible (mise en couleur des cellules et bordures) ; des tris si nécessaires ; suppression des données inscrites dans les cellules D1 et E1 du fichier cible sur la feuille et les déplacer directement dans la macro ; que sais-je encore de plus.
A te relire.
Bonjour Yvouille,
Merci pour ta réponse et désolé de la mienne un peu tardive, j'ai eu la chance d'aller au ski
La maccro répond super bien aux besoins! Merci!
Concernant les tris, je voulais dire que les personnes classent parfois le tableau par "name" ou "product group" pour voir de façon globale les ventes.
Mon inquiétude était: si un fichier était classé différemment de l'autre et une ligne est ajouté dans le fichier "SOURCING LIST", que le tableau complet du fichier "TBD VENTES" se désorganisent (colonne B,C,D se décalent avec l'ajout de la ligne, mais les cellules E,F,G,H ne se décalent pas automatiquement). (j'ai du mal à expliqué... mais ce n'est pas du tout le cas avec ton fichier, donc tout est bon!
Concernant la mise en forme conditionnelle je serais en effet très intéressé pour que les lignes prennent le même format!
J'ai essayé et je n'y arrivais pas...
Caché les cellules serait également très intéressants! (si ce n'est pas trop compliqué
Un dernier point serait concernant l'ajout d'une deuxième feuille (de stock) situé dans le fichier "TBD VENTES". Il contiendrait exactement les mêmes colonnes de la feuille 1 du "TBD VENTES" existant (donc importation des trois colonnes avec la même macro), mais
synchroniserait également les valeurs des colonnes suivantes (contenant les 52 semaines) (E, F, G, H, J, K.... AZ) en ajoutant automatiquement les données d'approvisionnement de chaque référence (lorsqu'il y en a) du fichier "SOURCING LIST" (qui contient les approvisionnement) et déduirait les ventes des semaines de chaque référence de la feuille 1 du "TDB VENTES".
Ce qui permettrait de donner un état du stock permanent
J'ai essayé avec une fonction recherche v mais je reste bloqué, surement à cause des deux fichiers..
Pour illustrer j'ai joins le fichier TDB Ventes (ou il y a l'amour d'une feuille) avec le détail pour deux cellule.
Je te dois déjà beaucoup! Merci Yvouille
Salut LVG,
Essaie de ne pas attendre trop entre deux retours, car je dois à chaque fois me replonger complètement dans ton fichier sinon. Dans le cas contraire, j’ai encore un peu plus ce cas en tête. Mais ne te précipite pas non plus à répondre vite et n’importe quoi.
Maintenant tu me bombardes d’idées et elles sont souvent imprécises. Afin de ne pas se mélanger les pinceaux, on va prendre un problème après l’autre et explique les moi bien en détail. Lorsque tu dis ‘‘Caché les cellules seraient également intéressant’’, je ne peux absolument pas savoir de quoi tu parles. Je n’en sais pas plus lorsque tu écrits ‘’ Concernant la mise en forme conditionnelle je serais en effet très intéressé pour que les lignes prennent le même format!’’. De quel fichier, de quelle feuille, de quelles cellules parles-tu ? Fais donc référence dans tes explications aux objets Excel d’une manière précise.
Pour l’instant je ne me suis intéressé qu’à cette nouvelle feuille que j’ai renommée ‘’Stock’’. Dans le fichier ci-joint, lorsque tu actualises ta feuille ‘’Feuil1’’ par l’intermédiaire du bouton en place, il y a ceci qui se passe en plus de la dernière version : Les lignes 5 et suivantes de la feuille ‘’Stock’’ sont à chaque fois effacées, la plage B5:Dxx de la ‘’Feuil1’’ est copiée et collée sur la feuille ‘’Stock’’ et les données de la plage E5:BMxxx sont recalculées selon ce que j’ai pu comprendre de tes explications. A toi de tester.
Si tout ceci te convient, on continue avec le prochain problème que tu voudras bien me réexpliquer.
Si tu me renvoies des fichiers exemple, incrémente le numéro de version (_V1, _V2, etc.).
Cordialement.
Bonjour Yvouille,
Je souhaiterais effectivement que sur le fichier "TBD Ventes" que les cellules où l'on inscrit le chemin pour retrouver le fichier "SOURCING LIST" soit cachés.
Concernant la mise en forme conditionnelle, je souhaiterais que les lignes de "Feuille 1" et Feuille "Stock" (du fichier Fichier "TBD Ventes") qui ont été copiés à partir du fichier "Sourcing list", reprennent les même couleurs que celles affichés dans le fichier "Sourcing list".
Concernant le nouveau fichier, je ne peux malheureusement le tester car je rencontre un soucis: celui-ci ce referme dès que j'appuie sur "actualiser". Il n'y a aucun message d'erreur, lorsque j'appuie sur actualiser, excel me demande d'enregistrer puis quitte le fichier.
Aurais-tu une idée du problème?
Merci,
LVG
Salut,
LVG25 a écrit :Je souhaiterais effectivement que sur le fichier "TBD Ventes" que les cellules où l'on inscrit le chemin pour retrouver le fichier "SOURCING LIST" soit cachés
Il y a deux manières principales de réaliser cela : Soit on inscrit les données nécessaires directement dans la macro – mais alors il faudra savoir où aller modifier ces données si nécessaire – soit tu inscrits ces données dans des cellules quelconques (par exemple CA1 et CA2) et tu masques la colonne correspondante (ici, la colonne CA). Quelle manière préfères-tu ?
LVG25 a écrit :Concernant la mise en forme conditionnelle,
Je crois que j’ai enfin compris ce que tu veux dire par mise en forme conditionnelle, mais alors il me semble que ce n’est absolument pas de la mise en forme conditionnelle. Je m’explique : si tu vas sur ton fichier ‘TBD Vente’ et que tu cliques par exemple sur la cellule B40 puis que tu choisis le menu ‘Accueil/Mise en forme conditionnelle / Gérer les règles’, tu vois qu’il n’y a pas de mise en forme conditionnelle. Par contre tu sembles avoir placé des ‘tableaux’ ou ‘Tables’ sur tes feuilles – tableaux dont les cellules devraient se mettre automatiquement en forme, selon ce que j’ai compris – et je ne comprends alors pas que ça ne fonctionne pas automatiquement, alors que la mise à jour des références de ces tableaux semble fonctionner. Je m’explique à nouveau : Si tu vas sur la Feuil1 de ton fichier et que tu choisis le menu ‘Formules / Gestionnaire de noms’, tu vois que la ‘Table 1’ fait référence à ‘Feuil1!B5 :BM64’. Puis si tu lances la macro en place, cette plage de référence est modifiée automatiquement en fonction des nouvelles lignes copiées-collées. Pourquoi – alors que ces références sont actualisées – la mise en forme (mais pas conditionnelle) n’est pas modifiée ?????? Je connais assez peu ces ‘Tableaux’ ou ces ‘Tables’. Donc si tu n’as pas une idée pour résoudre manuellement ce problème – auquel cas j’arriverai peut-être, sur la base de tes explications à résoudre également ce problème par macro – il faudra éventuellement que tu ouvres un nouveau fil pour poser cette question.
LVG25 a écrit :Concernant le nouveau fichier, je ne peux malheureusement le tester car je rencontre un soucis:
Afin de pouvoir tester mes macros, il faut absolument que le fichier et son extension indiqués dans la cellule D1 existe vraiment au chemin indiqué dans la cellule E1. Afin d’effectuer mes derniers essais, j’avais créé un fichier renommé ‘Sourcing list_V1’, nouveau nom que j’ai inscrit dans la cellule D1. As-tu vraiment un tel fichier dans ton arborescence ? Si non, désolé d’avoir oublié de te mentionner cette modification.
Et tu as bien compris semble-t-il que nos chemins – indiqués en E1 – ne sont pas les mêmes et qu’il faut modifier la séparation selon que l’on soit sur l’un ou l’autre des systèmes (donc soit : soit \).
Tout ceci te permet d’avancer ?
Bonjour Yvouille,
Pour le premier point: caché les cellules (ici CA), est-il possible de l'intégrer directement dans la macro et de m'indiquer ce que je dois modifier de mon coté?
Second point: la mise en forme conditionnelle, la "mise en forme" s'effectue effectivement déjà grâce à ta maccro (je m'excuse pour cette erreur de ma part...).
Concernant le dernier point: j'ai modifié le chemin comme je l'avait fais lors de mon premier essais (sur le fichier TDB Vente V1 que tu m'avais transmis), mais cela ne fonctionne plus..(J'ai pourtant bien le ficher "SOURCING LIST V1" dans mon arborescence et cela marchai avant... =/).
Serait-il possible pour toi d'effectuer la modification du premier point (de mon message) et de me retransmettre le fichier?
Cela règlera peu être le problème...
Merci,
Cordialement,
LVG
Salut,
Désolé pour le temps d’attente, mais je suis assez pris ces temps.
J’ai modifié la manière d’affecter des valeurs aux variables ‘Chemin’ et ‘Fichier_source’.
Dans la macro en place, tu vois trois manières différentes d’affecter une valeur à la variable ‘Chemin’, dont deux ont été neutralisée en plaçant une apostrophe devant. La première manière était en y affectant la valeur de la cellule E1 ; la deuxième manière est maintenant en indiquant TON chemin directement dans la macro et la troisième – actuellement active – est en indiquant MON chemin.
Les deux manières d’affecter une valeur à la variable ‘Fichier_source’ sont simplement en utilisant le contenu de la cellule D1 (désactivé) ou en inscrivant le nom du fichier directement dans la macro (activé).
Maintenant, pour que tout cela fonctionne, il semble que tu dois encore modifier la manière d’ouvrir le fichier source. J’avais placé moi-même une ligne qui me permettait d’ouvrir ce fichier sur ma machine :
Workbooks.Open Filename:=Chemin & "\" & Fichier_sourceet lorsque tu m’as retourné une première fois un fichier, tu avais modifié cette ligne en plaçant deux points à la place de mon slash :
Workbooks.Open Filename:=Chemin & " :" & Fichier_sourceJ’avais alors cru comprendre que sur Macintosh – que je ne connais pas du tout – tu devais utiliser un autre signe que sur Windows. Si c’est bien le cas, est-ce que tu avais fait la modification nécessaire avant de faire les derniers essais chez toi ? Dans le fichier fourni, les deux manières sont déjà inscrites dans la macro, mais tu dois modifier l’activation des lignes en fonction de ta machine. Intentionnellement, j’ai laissé la macro dans l’état dans lequel elle est utilisable chez moi.
Tu m’indiques que la mise en forme fonctionne bien maintenant, tant mieux. Mais ce n’est pas grâce à ma macro ; c’est simplement que la mise en forme automatique de ton tableau (et non pas la mise en forme conditionnelle de certaines cellules) fonctionne MALGRE ma macro.
A te relire.
Bonjour Yvouille,
Merci pour ta réponse, oui il y a une différence entre mac et windows pour pas mal de choses malheureusement...
Mais le problème est résolu concernant l'ouverture du fichier.
Concernant la feuille 'Stock' du fichier 'TBD ventes V3' pour actualiser les stocks selon les ventes, cela fonctionne également.
Cependant, actuellement le calcul effectué pour calculer le stock de tout les produits pour toutes les semaines ( de la colonne E à BM) est: cellules correspondantes de 'feuil 1' du fichier 'sourcing list' - cellules correspondantes de 'feuil 1' 'TBD ventes V3'.
Cette formule est correcte pour la semaine 1 (colonne E) (car il n'y a pas de stock à l'origine) mais pour les autre semaines (de colonne F à BM) la formule devraient prendre en compte le stock restant de la semaine précédente pour ces produits.
La formule devrait donc être: cellules correspondantes de 'feuil 1' du fichier 'sourcing list' - cellules correspondantes de 'feuil 1' 'TBD ventes V3' + cellules du stock de la semaine précédente (colonne précédente de la feuille 'Stock' du fichier 'TBD Vente V3).
Un exemple précis en prenant le stock de la référence 146 en semaine 2 (Week2) (Colonne F):
La cellule doit être égale à:
= Valeur Fichier SOURCING LIST cellule de la colonne week 2 pour la référence 146 - (moins) Valeur Fichier 'TDB VENTES' 'Feuil 1' cellule de la colonne Week2 pour la référence 146 + Valeur de la cellule Week 1 de 'TDB VENTES' feuille 'Stock'
Serait t'il pour toi de regarder ce détail?
Je serais également très intéressé de comprendre où ajouter cet élément (je n'ai pas trouvé de mon côté).
Merci beaucoup,
Cordialement,
LVG
Salut,
Si je t’ai bien compris, le fichier ci-joint devrait répondre à ton attente.
Par une macro, on pourrait placer des formules dans un fichier, mais on peut aussi effectuer le calcul directement dans la macro et n’afficher que le résultat. Si tu places des formules sur ta feuille, tu peux modifier les données de base et le résultat final sera modifié, mais une très grande quantité de formules peuvent alourdir terriblement un fichier. Si tu places des résultats de calculs uniquement sur ta feuille, ceux-ci ne seront pas actualisés si les données de base sont modifiées, mais ce n’est pas toujours utile, comme dans ton cas présentement ; du moins il me semble.
Dans ma macro, la ligne de code ci-dessous par exemple effectue les calculs nécessaires à ta première colonne (il s’agit en fait d’une adaptation de mon ancien calcul valable pour toutes les colonnes que tu m’as demandé de corriger) :
ThisWorkbook.Sheets("Stock").Cells(i, 5) = ActiveSheet.Cells(k, 14) - .Cells(i, 5)A ton entière disposition si ce n’est toujours pas clair.
Cordialement.