Macro récupération données plusieurs classeurs même répertoire [Résolu]

Signaler
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020
-
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
-
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

Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
6
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.
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

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
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
6
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.

++
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020
>
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021

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 :)
Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021
3 110
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
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
6 >
Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021

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à :)
Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021
3 110
Bon OK, je vois que mes propositions n'intéressent pas June !
bon WE

Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

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
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

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 !

Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021
3 110
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

Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

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 ?
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
6
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+
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

Comme promis, voici 3 fichiers de chaque :
  • 3 fichiers en "S" :

- https://www.cjoint.com/c/JLlpxcRVeEh
- https://www.cjoint.com/c/JLlpxZxMgzh
- https://www.cjoint.com/c/JLlpylWILgh
  • 3 fichiers en "T" :

- https://www.cjoint.com/c/JLlpyPeVfoh
- https://www.cjoint.com/c/JLlpzmHLPwh
- https://www.cjoint.com/c/JLlpzHeKqIh


Merci @ptitpanda et @michel_m pour votre aide :)
Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021
3 110
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




Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

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
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
6
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
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

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
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
6 >
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

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
Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021
3 110
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à!)



Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
6
Bonjour Michel

Tu m'as appris qq chose avec l'instruction " ExecuteExcel4Macro" Je ne connaissais pas du tout.
je me note ça :)
Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021
3 110 >
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021

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
Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021
3 110
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 :-/

Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021
3 110
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)
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

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... :/
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

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 !
Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021
3 110
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)
Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021
3 110
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
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

Merci je vais essayer ! :)

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

Je vais essayer avec la solution de ptitpanda
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
6 >
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

Bonjour,


OOPS désolé, c'est ma faute je ne sais pas d'où je sors ce tiret :(


J'avais renommé "BDC-" en "BDC" dans ton code, mais visiblement il n'a pas apprécié ^^
Donc finalement, il valait mieux renommer les fichiers existants

Oui tu pouvais il manquait juste l'espace derrière BDC : "BDC " et ça aurait fonctionné. Ca a du te prendre du temps :/

J'espère que ça te conviendra et n'oublie pas quand tu changeras le nom de l'onglet de le changer dans le code aussi.

Bonne journée
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020
>
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021

Ah d'accord, voilà pourquoi ça ne marchait pas !

Pas de soucis, vu que je l'ai fait sur 2021 il y en a peu pour le moment donc c'était vite fait :)

Par contre, pour tester les 2020 je dois les renommer car ils ne sont pas du tout nommés de la même façon ^^
Mais pas de soucis, j'ai vu qu'il existait un petit logiciel pour faire ça ;)

Bonne journée
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020
>
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

Alors je viens d'essayer les bdc 2020 et ça fonctionne !

J'ai utilisé le logiciel Ant Renamer (que je conseille au passage) pour renommer les 600 fichiers et j'ai juste modifié "bdc" en "Bon de commande", parce que l'onglet s'appelle comme ça sur les fichiers 2020.

Merci encore à vous deux @ptitpanda et @michel_m ! :)
Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021
3 110 >
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

Bonjour
Discussions intéressantes et conviviales : Merci à tous les 2 pour ces moments prises de tête mais toujours sympas

A bientôt pour de nouvelles zzzz'aventures !
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
6 >
Messages postés
16365
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 janvier 2021

Bonjour à tous les 2

Bon, on a fini par y arriver :)

Passez de bonnes fêtes et faites attention ;)

A +
Messages postés
18
Date d'inscription
jeudi 10 décembre 2020
Statut
Membre
Dernière intervention
18 décembre 2020

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