Macro récupération données plusieurs classeurs même répertoire

Résolu
June1792 Messages postés 18 Statut Membre -  
ptitpanda Messages postés 67 Statut Membre -
Bonjour,

Je dois concevoir un tableau récapitulatif pour les bons de commande de l'année 2021.

Mon problème est le suivant :

Je souhaiterai automatiser un maximum le remplissage de ce tableau, dans l'idéal toutes les cellules non colorées en jaune.

Pour ce faire, j'aimerai récupérer le contenu des cellules de tous les fichiers existants ou à venir, sachant que :
  • Les fichiers sont tous nommés de la même manière : BDC 2021-T-000 FOURNISSEUR ou BDC 2021-S-000 FOURNISSEUR, toujours avec 3 chiffres. Ex : 001, 099, 200...
  • Ils sont ou seront tous enregistrés dans le répertoire suivant : 'L:\2. FINANCES\2.1 COMPTABILITE\2.1.7 Bons de Commande\Bons de commande 2021\
  • Le fichier récap joint est inclus dans ce même dossier, ainsi qu'un classeur "données", permettant les listes déroulantes (inutile pour ma demande, c'est pour cela qu'il n'est pas joint ici)


Je souhaiterai :

1) A l'aide de la colonne B du fichier récap, récupérer les cellules suivantes sur les fichiers individuels :
  • Pour la colonne C : Récupérer la cellule F13 ;
  • Pour la colonne D : Récupérer la cellule A7 ;
  • Pour la colonne F : Récupérer la somme des cellules G25 et G28 ;
  • Pour la colonne G : Récupérer la concaténation des cellules B13 et C13 ;
  • Pour la colonne H : Une formule "si la case 'invest' est cochée dans le fichier source (cellule I9 = VRAI), alors prendre la cellule F3 onglet Feuil1 du fichier récap, sinon prendre la cellule F2 onglet Feuil1 du fichier récap"


Je pense être amenée plus tard à créer d'autres colonnes, dans le même type que les colonnes C et D.

2) Dans la colonne M du fichier récap, je cherche un moyen de choisir dans une liste déroulante entre les cellules D2 ou D 3 de l'onglet Feuil1 si les conditions indiquées dans la formule déjà inscrite ne sont pas remplies, sans écraser cette formule.

En gros :

Si le solde (colonne L) est inférieur ou égal à 0

alors "soldé"

sinon

si la section est invest (colonne H)

alors "RAR"

sinon

choisir entre "à rattacher" ou "à basculer"

Voilà, j'espère avoir été suffisamment claire !

https://www.cjoint.com/c/JLkoO2lZ5kh
https://www.cjoint.com/c/JLkoPQB03gh
https://www.cjoint.com/c/JLkoQp42KPh

Vous remerciant par avance,

June1792

18 réponses

Résumé de la discussion

Un besoin porte sur la création d'un tableau récapitulatif des bons de commande 2021, alimenté par des fichiers nommés BDC 2021-T-XXX FOURNISSEUR ou BDC 2021-S-XXX FOURNISSEUR, dans un répertoire unique. Pour automatiser les colonnes C, D, F, G et H à partir de la colonne B, il faut récupérer F13, A7, G25+G28 et B13+C13, puis appliquer une condition sur I9 et F3/F2. Des échanges explorent l’emploi de macros et de déclencheurs pour peupler les données et gérer les imports, avec des tests sur la colonne M et l’étiquetage des soldes. Plusieurs échanges aboutissent à une macro avec déclencheur manuel lors de la création d’un BDC, afin de synchroniser les colonnes et d’assurer des mises à jour sans écraser les formules.

Bobot (l'IA à votre service)
  1. ptitpanda Messages postés 67 Statut Membre 8
     
    Bonjour June

    Petite question: veux tu cela QUE en formule ou une toute petite macro ne te dérange pas?

    Car il y aura surement un souci pour faire comprendre à excel le chemin des fichiers sans macro.

    Je continue à voir les solutions.
    0
  2. June1792 Messages postés 18 Statut Membre
     
    Bonjour @ptitpanda,

    Non ça ne me dérange absolument pas qu'il y ait une macro, voire même plusieurs.

    Vu ce que je demande, je pense qu'effectivement les macros sont indispensables.

    Merci beaucoup de prendre du temps pour m'aider :)

    à bientôt,

    June1792
    0
    1. ptitpanda Messages postés 67 Statut Membre 8
       
      Ok nickel

      Maintenant quelques petites précisions qui m'aideront à finaliser et rajouter des lignes de codes au besoin::

      -Dois tu insérer/supprimer des lignes ?
      - J'ai vu que tu voudras par la suite ajouter des colonnes mais je t'expliquerai dans le code les choses à modifier.

      ++
      0
      1. June1792 Messages postés 18 Statut Membre > ptitpanda Messages postés 67 Statut Membre
         
        Normalement, à moins qu'un autre typage de fichier source se crée (2020-X-000 par exemple), il n'y aura pas de lignes à rajouter car j'ai vu très large dans les numérotations.

        Pour les colonnes, effectivement c'est possible qu'au fur et à mesure de l'utilisation, je cherche à en rajouter pour améliorer le fichier.

        Merci encore :)
        0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour June, Ptipanda

      question:
      dans ton dossier il n'y a que les bons de commande en xlsx et le recap (en xlsm car macro) ?
      ----
      une 1° analyse indique que l'on pourrait travailler sans ouvrir les BDC grâce aux macros XL4

      Mais reste l'écoute car il se peut que j'ai des demandes pendant le WE si je n'ai pas fini cet aprèm
      ----
      OK ou pas ?
      mais si ptitpanda veut le faire, ca me dérange pas
      0
      1. ptitpanda Messages postés 67 Statut Membre 8 > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour michel

        OOPS je ne l'avais pas vu no plus ton message
        N'hésites pas aussi si tu veux proposer qq chose ma méthode ne sera pas forcément la meilleure façon et je ne me vexe absolument pas si qq un intervient, beaucoup de programmeurs ont des façons différentes de penser une programmation, tant que le but final est là :)
        0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bon OK, je vois que mes propositions n'intéressent pas June !
    bon WE

    0
  4. June1792 Messages postés 18 Statut Membre
     
    Bonjour @michel_m

    Désolée, je ne suis pas en permanence sur le forum, je viens de lire ton message.

    Bien sûr que ton aide est aussi la bienvenue !

    Dans le dossier, il y a :
    • les fichiers bons de commande en xlsx ;
    • un fichier "données" en xlsx (inutile pour ma demande, c'est pourquoi je ne l'ai pas joint ici) ;
    • le fichier récap en xlsm


    Si l'on est pas obligé d'ouvrir les BDC, ce serait formidable car il y en aura beaucoup !

    Bon we,

    June1792
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. June1792 Messages postés 18 Statut Membre
     
    Ci-joint une capture d'écran du dossier.
    Pour l'instant, il y a peu de BDC, mais le nombre de fichiers va vite s'agrandir !

    0
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Je croyais avoir répondu à ptitpanda mais j'ai du faire une fausse manip...

    t'inquiètes pas, ce serait intéressant de voir les 2 méthodes de toutes façons certainement bonnes car "made in Drôme-Ardèche" (bof) !

    Pour June

    il serait intéressant que tu remplisses 2 ou 3 BDC et que tu nous envoie (avec des données bidon) pour nous faciliter le travail
    Dans l'attente

    0
    1. June1792 Messages postés 18 Statut Membre
       
      Pas de soucis, j'essaie de faire ça dans la soirée ;)

      Il y en a déjà un de chaque de fait, j'en rajouterai 2 autres. Ça ferait donc 6 fichiers au total, ça ira ?
      0
  8. ptitpanda Messages postés 67 Statut Membre 8
     
    re

    @June
    Je vois dans ta copie d'écran que tes nom de fichier ne sont pas vraiment ceux déjà mis dans la colonne B du classeur donné, mais bon il suffira de remettre les bons soit dans la colonne B ou renommer les classeur.

    Sinon voici bon bout de code (vraiment ptit mais je pense suffisant):
    La seule "contrainte" c'est que tu devras entrer le numero de BDC (colonne B) en manuel car c'est sur ce changement/création de cellule que la macro s'éxécutera (c'est pour cela que j'ai tout effacé la colonne B. Tout le reste répond à tes attentes ..je pense

    Il sera toujours possible de choisir un autre déclencheur en adaptant le code donc voici le fichier suivi BDC:

    https://www.cjoint.com/c/JLlpeqKz3Rb

    Tu me diras

    A+
    0
  9. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Re,

    A la bourre mais j'ai du mal à me rajeunir de 20 ans dans l'utilisation des macros XL4 (elles permettent de prélever des données dans un classeur fermé sans l'ouvrir)

    reste à compléter quelques colonnes(D FGH)

    Si le principe convient, je ferais la restitution en utilisant une variable tableau pour réduire la durée de la macro


    0
    1. June1792 Messages postés 18 Statut Membre
       
      Super merci !

      Je fais le test dans le week-end et je te dis ça ;)

      Demain je serai très occupée, donc je pense plutôt regarder ça dimanche.

      Bon we

      June
      0
  10. ptitpanda Messages postés 67 Statut Membre 8
     
    OOPS je pensais qu'en B c'était le nom de tes fichiers, je comprends mieux la copie d'écran. donc faut que je revois un morceau de code et je remets ça demain

    bonne soirée
    0
    1. June1792 Messages postés 18 Statut Membre
       
      Pas de soucis, c'est moi qui aurais dû être plus claire.

      C'est juste une partie du nom des fichiers. Comme on ne peut pas savoir à l'avance quel sera le fournisseur lié à chaque bdc, je ne voyais pas comment faire autrement

      Je regarde ce que tu as envoyé et la proposition de @michel aussi :)

      Bonne soirée
      0
      1. ptitpanda Messages postés 67 Statut Membre 8 > June1792 Messages postés 18 Statut Membre
         
        re,

        Donc voilà j'ai rattraper mon erreur. oublie le lien donné dans ma réponse précédente et prends celui là:

        https://www.cjoint.com/c/JLlwrJ2Om8b

        Je t'ai donc remis en colonne B ta numérotation.

        Pour faire apparaître les infos dans les colonnes, tu mets simplement ton curseur dans la cellule (colonne B) correspondant au nom de ton BDC créé (ex. 2021-T-003) et soit tu valides par "entrée" soit tu ressors en cliquant ailleurs
        Attention: c'est à faire qu'une seule fois (lors de la création de ton BDC), après, ça se mettra à jour tout seul.

        Bonne soirée
        0
  11. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Je fais les inscriptions pour tous les fichiers en une seule fois
    Ptit Panda au fur et à mesure

    Donc,...? mais j'ai l'impression que c'est ptitpanda qui a raison

    ma méthode "au cas ou"
    https://mon-partage.fr/f/5rg8h2yl/

    mais pour inscrire au fur et à mesure, on pourrait transformer les BDC en xlsm et procéder ainsi au coup par coup, ainsi c'est la personne qui remplit le BDC qui valide son travail (mais c'est du boulot si les BDC existe déjà!)

    0
    1. ptitpanda Messages postés 67 Statut Membre 8
       
      Bonjour Michel

      Tu m'as appris qq chose avec l'instruction " ExecuteExcel4Macro" Je ne connaissais pas du tout.
      je me note ça :)
      0
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > ptitpanda Messages postés 67 Statut Membre
         
        Re,

        c'est un vieux truc inventé par un grand Manitou mondial d'excel connu sous le nom de macro de Walkenbach

        Vu la météo, je regarde comment combiner avec un test sur la ligne du bdc

        au passage:
        avec displayalert, si par malheur sur tu sors avant son annulation, les macros ne fonctionnent plus quelque sot le fichier!
        expérience vécue avec crise de nerfs à la clé!!!
        il faut passer par un booléan en début de macro
        si je trouve un exemple dans mon grenier, je te passerai çà par message perso
        0
  12. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    j'ai pensé à un truc ce matin en mettant mes chaussettes qui empêcherait de recommencer à chaque nouveau Bdc de remplir à nouveau les lignes déjà remplies: test sur la colonne date (c) ce qui ferait gagner du temps surtout si on a beaucoup de de Bdc et peut ainsi faire du "coup par coup"...

    Edit 9:16H
    par contre , je n'ai pas compris ce qu'il fallait faire en colonne M :-/

    0
  13. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    et voilà le code modifié
    https://mon-partage.fr/f/1IcdeB2C/
    en espérant que...

    Si avec tes 1000 bdc la durée d’exécution est un peu longue, j'utiliserai la restitution par des variables tableaux (traitement des données en mémoire RAM)
    0
  14. June1792 Messages postés 18 Statut Membre
     
    Bonjour @michel_m et @ptitpanda !

    D'abord, merci à tous les 2 pour vos propositions.

    Je viens de faire le test de chaque fichier que vous m'avez transmis, dans un dossier "essai" dans un premier temps. le 2ème de @michel_m (auquel j'ai intégré la colonne "M" de @ptitpanda) fonctionne !

    Après un test définitif, j'ai un problème sur ton fichier @michel_m. Quand je fais le test dans le dossier définitif (L:\2. FINANCES\2.1 COMPTABILITE\2.1.7 Bons de Commande\Bons de commande 2021), 2 messages apparaissent :





    Tout fonctionne pourtant parfaitement dans le dossier "essai", cela vient-il du chemin du fichier (Il est enregistré sur un serveur partagé) ?

    Je précise que j'ai bien mis le fichier récap dans le même dossier que les bdc et le fichier "données". Même en renommant ce fichier de "Données" en "données", le problème persiste... :/
    0
    1. June1792 Messages postés 18 Statut Membre
       
      Et effectivement, je pense que la durée de traitement risque d'être longue, surtout que notre réseau professionnel n'est pas extraordinaire ^^

      Bon il n'y aura pas 1 000 BDC (j'ai fait large sur le fichier), mais par exemple pour 2020 il y en a presque 600 !
      0
  15. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    BOnjour
    "cela vient-il du chemin du fichier (Il est enregistré sur un serveur partagé) ?"

    Apparemment : oui
    essaie en écrivant le chemin complet à partir du serveur
    Mais du temps d 'Excel4, on était en monoposte rarement avec serveur
    donc, essaie la solution de Ptitpanda
    Autre possibilité: télécharger le classeur sur ton poste et le renvoyer sur le serveur une fois la macro exécutée ( A voir avec l'administrateur du serveuru)

    rapidité
    faut voir avec 600...
    dans la journée (c'est moi qui suit de ménage sans négociation possible ! ) je modifierai la macro pour mesurer la durée d’exécution (mais dans ton répertoire essai)
    0
  16. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    rapidité à tester sur les 600 (dans répertoire Essai)
    https://mon-partage.fr/f/rQX1xoB1/

    mais le pb vital reste le classeur sur le serveur
    0
  17. June1792 Messages postés 18 Statut Membre
     
    Merci je vais essayer ! :)

    Oui, il reste juste le problème du serveur...

    Je vais essayer avec la solution de ptitpanda
    0
    1. ptitpanda Messages postés 67 Statut Membre 8
       
      Bonsoir,

      Alors? as tu pu faire des essais ? ou veux tu modifier des trucs?

      Car j'ai vu que tu avais 600 fichiers déjà pour 2020
      Au vu de la copie d'écran , je pensais que c'était le début et que vous en aviez que qq uns.
      Donc pour 600 c'est clair que tu ne vas pas valider 600 BDC en colonne B comme je t'ai demandé . Si ça t'intéresse et que les liens fonctionnent je peux te faire une boucle sur les XX BDC du répertoire.

      Bonne soirée
      0
    2. June1792 Messages postés 18 Statut Membre > ptitpanda Messages postés 67 Statut Membre
       
      Bonjour @ptitpanda,

      Je viens de tester ton fichier. Peut-être que je m'y prends mal, mais lorsque que je sélectionne une cellule et que j'appuie sur "Entrée", rien ne se passe :/
      Même chose quand je fais un double clic et que j'appuie sur "Entrée" ensuite :/

      Oui une boucle ce serait super ! :)

      A bientôt ,

      June
      0
    3. ptitpanda Messages postés 67 Statut Membre 8 > June1792 Messages postés 18 Statut Membre
       
      Bonjour,

      Je viens de tester ton fichier. Peut-être que je m'y prends mal, mais lorsque que je sélectionne une cellule et que j'appuie sur "Entrée", rien ne se passe :/ 

      Non en fait il faut simplement entrer dans la cellule (mettre le curseur dedans, sans rien re-taper dedans) et valider par "entrée" et non pas sélectionner la cellule

      En voyant la copie d'écran ke ne pensais pas que tu avais dejà 600BDC à entrer, je croyais que vous débutiez sur les BDC pour ça que je l'ai fait de cette manière.

      Mais bon pas grave j'ai revu mon fichier pour que comme le fichier de michel, avec un bouton, tu puisses récupérer les infos de tous tes BDC déjà créés (les 600) ce qui risque d'être un peu long, ça dépend.
      Par contre lors de la création d'un futur BDC, j'ai laissé aussi ma 1ere façon de juste "valider" le BDC en colonne B pour récupérer les infos, ce qui te fera gagner du temps pour ne pas avoir à récupérer chaque fois les infos des 600-700 BDC alors que tu ne viens d'en créer qu'un seul.

      Je ne sais pas si je suis trés clair :)

      Je t'ai mis des explications dans le fichier que voici:

      https://www.cjoint.com/c/JLrkOvD5T6b

      A bientôt
      0
    4. June1792 Messages postés 18 Statut Membre > ptitpanda Messages postés 67 Statut Membre
       
      Re-bonjour :)

      Je viens d'essayer ton fichier, ça ne fonctionne pas :/

      Je clique sur le bouton "importer" et j'entre la cellule puis "entrée" comme tu me l'as expliqué, mais rien ne se passe.
      Il n'y a aucun message d'erreur qui s'affiche, ça aurait pu venir de là mais non.
      0
    5. ptitpanda Messages postés 67 Statut Membre 8 > June1792 Messages postés 18 Statut Membre
       
      Je clique sur le bouton "importer" et j'entre la cellule puis "entrée" comme tu me l'as expliqué, mais rien ne se passe. 

      Me suis mal exprimé en fait.
      1ere chose :
      - Pour importer tes 600 BDC déjà créés juste tu cliques le bouton c'est tout
      - Tu as une fenêtre qui te demande confirmation
      - Ensuite il fait le boulot...normalement.

      2eme chose:
      Tous tes BDC déjà créés sont normalement dans le tableau
      Quand tu auras un nouveau BDC à faire:
      -Tu le crées, tu l'enregistrement normalement sous "BDC-2021-T-601 fournisseur" (par exemple) dans son emplacement réseau comme d'hab
      -C'est là, que plutôt que de cliquer le bouton qui va te ré-importer tes 601 BDC
      - juste tu te mets dans la cellule de la colonne B qui contient ton nouveau n° de BDC (2021-T-601 selon notre exemple) et tu appuies "entrée" cela va importer que les informations de ce BDC là.
      - Et pareil pour les suivants

      C'est seulement pour gagner du temps.

      Par contre tu dis que rien ne fonctionne et aucun message d'erreur; as tu eu la fenêtre de confirmation qui te demande si tu veux tout importer??

      Dernière chose:
      On va bientôt passer en 2021 et je suppose que le nom de l'onglet ne sera plus 2020 mais 2021 Tu devras le modifier dans le code (je t'ai bien précisé l'endroit dans le code même)

      Je te remets le fichier car j'ai rajouté des commentaires dans le code
      https://www.cjoint.com/c/JLrqdBmaLmb

      J'espère avoir était plus clair, c'est pas toujours facile à distance :)
      si tu as des doutes n'hésites pas
      0
  18. June1792 Messages postés 18 Statut Membre
     
    Re-bonjour @ptitpanda !

    Ton premier fichier fonctionne parfaitement par contre ! :)

    La seule chose, c'est qu'il faut saisir le nom des BDC à chaque fois
    0