Modifier un fichier CSV à partir d'un autre avec une macro

Bonjour bonjour,

J'ai besoin de votre aide. Je souhaite créer une macro Excel qui permettrait d'actualiser des stocks sur un catalogue d'articles au format CSV à partir d'un fichier CSV source (issu d'un logiciel de gestion de stocks) en utilisant une méthode type RECHERCHEV entre les deux fichiers (sur les codes-barres des articles).

Voici l'interface que je souhaiterais obtenir. L'utilisateur choisi les deux fichiers CSV à l'aide des boutons parcourir (ce que j'ai déjà réussi à faire, les chemins des fichiers CSV seront compris dans les cellules H3 et H4) puis appuie sur le bouton de mise à jour ce qui modifiera le fichier "catalogue_site.csv".

image

Voici les caractéristiques de chaque fichier :

  • Le fichier Catalogue (catalogue_site.csv) est séparé par des virgules. Il contient des informations, dont les stocks pour chaque produit dans la colonne "inventory" et les codes-barres produits dans la colonne "additionalInfoDescription4"
  • Le fichier Stock (stock.csv) est séparé par des tabulations. Il contient également les codes-barres dans la colonne "CODE-BARRES" et le stock dans la colonne "QUANTITÉ TOTALE"

Le but est alors d'actualiser la colonne "inventory" du fichier "catalogue_site.csv" à partir du stock du fichier "stock.csv" (en mettant le stock à 0 si un produit n'est pas trouvé dans le fichier "stock.csv")

Merci d'avance pour votre aide, bonne soirée à vous !


Ci-joint les fichiers catalogue_site.csv (à dézipper) et stock.csv :

38stock.csv (12.05 Ko)
32catalogue-site.zip (13.48 Ko)

Bonjour,

Je vois mal comment on pourrait faire une jointure entre deux tables (catalogue et stock) qui n'ont pas d'index commun.
Le code barre qui semble être le point commun entre vos deux tables ne peut servir d'index puisque votre table des stocks n'en contient que 5 différents pour 145 articles (6,00515E+11 | 3,70041E+12 | 4,03611E+12 | 5,03147E+12 et 5,05618E+12).
Je suis passé à côté de quel détail ?

Bonjour,

Une première réponse.
A méditer.
Réalisé avec Power Query et VBA pour le choix des fichiers et l'actualisation des données.
Cdlt.

20jeskil.xlsm (41.05 Ko)

Bonsoir, merci pour vos réponses rapides !

Le code barre qui semble être le point commun entre vos deux tables ne peut servir d'index puisque votre table des stocks n'en contient que 5 différents pour 145 articles (6,00515E+11 | 3,70041E+12 | 4,03611E+12 | 5,03147E+12 et 5,05618E+12).

Je suis passé à côté de quel détail ?

Les codes-barres sont bien des nombres distincts (vous pourrez le voir en ouvrant le fichier dans un éditeur de texte), ces valeurs sont affichées ainsi car Excel les affiche par défaut au format scientifique , ce qui cache la fin des valeurs 🙂

Une première réponse.

A méditer.

Réalisé avec Power Query et VBA pour le choix des fichiers et l'actualisation des données.

Cdlt.

4jeskil.xlsm (41.05 Ko)

Merci pour cette version ! Cependant en l'exécutant j'obtiens le message d'erreur suivant, sauriez-vous comment le résoudre ?

image

Merci encore pour votre aide ! 😊
Jeskil

Re,

Désolé de ce petit désagrément.
Un souci de version ou de configuration de Power Query (options).
Je ne peux pas regarder, car je prépare mon départ en vancances.
Si 78chris lit ce post, il aura certainement la réponse appropriée.
Cdlt

Bonjour bonjour,

Je vous relance pour savoir si vous auriez des nouvelles concernant ce post qui n'est pas encore résolu (et pour savoir si Jean-Eric a passé de bonnes vacances 😊).

Quelqu'un saurait-il résoudre le problème de Power Query mentionné par Jean-Eric ?

Bon weekend à tous,

Jeskil

Bonjour

Sorry je n'avais pas vu ce fil. Jean-Eric vient de m'en avertir...

Lancer PowerQuery, Fichier, Options et paramètres, Options de requête, partie GLOBAL : Confidentialité, Toujours ignorer les paramètres de niveau de confidentialité

Cela supprimera le message d'erreur.
A noter que cette option ne sert à rien dans la quasi totalité des cas et limite les possibilités, d'où son décochage.

Rechercher des sujets similaires à "modifier fichier csv partir macro"