Aide pourde la gestion de base de données sans Acces

Aide pourde la gestion de base de données sans Acces - VB/VBA/VBS - Programmation

Marsh Posté le 05-08-2013 à 21:19:41    

Bonjour a tous,
 
Je suis actuellement en train de me pencher sur un fichier de récupération, d'archivage et d'analyse de donnée pour le boulot.
 
Je demande donc votre aide d’expert (ou du moins plus que moi, ce qui n'est pas compliqué)
 
Je vous explique donc le context :
- J'ai plusieurs fichier excel dans un même dossier sur un serveur (que l'on nommera X).
- Ces fichiers (X) ont tous la même mise en forme et comprenne de nombreuses lignes (en feuille1 nommée Données).
- J'ai un autre fichier excel (Report) que je voudrais mettre a jours grâce aux données des fichiers précédent.
 
L'idée de la macro est :
 
- J'envoi un message demandan de fermer tous les autres fichiers Excel.
- Si OK alors

    - J'ouvre tous les fichiers X
    - Je scrute toutes les ligne de la feuille1 de chaque dossier
    - Je compare ces lignes avec les ligne déjà existante dans le fichier Report (grâce a la donnée de la colonne D qui est unique)
         - Si la ligne existe je la remplace par celle du fichier X
         - Si elle n'existe pas je la colle a la fin des données du fichier Report
    - Une fois tout les dossier passé en revu je les ferme
 
Voila ou j'en suis de ma réflexion.
La parti écrite en Bleu est la seul que j'ai réussi a faire pour le moment.
 
L'aide que je demande :
- Me faire la Macro ??? (  :whistle: non je déconne, ce serais contre productif)
- m'envoyer les liens vers le discussions qui vont bien. (la fonction Find par exemple m'a l'aire toute indiqué)
- ou toute autre aide sera la bienvenu.
 
J'espère que le message est compréhensible et pas trop long.
 
J'attend de vos nouvelle, j'ai vraiment besoin de vous.
 
 :hello:  
 

Reply

Marsh Posté le 05-08-2013 à 21:19:41   

Reply

Marsh Posté le 06-08-2013 à 11:44:33    

Question bête : pourquoi ne pas lancer le code VBA à un moment de la journée où il n'y a personne qui travaillera sur les fichiers Excel (genre, vers 1h du matin) via une tâche planifiée ?
 
Autre solution : sur l'événement de clôture de chaque fichier Excel de données, tu peux mettre le code qui vient mettre à jour le fichier Report.
 
Le mieux resterait quand même une BD (mais surtout pas Access !) avec une IHM web (par ex) parce qu'avec ta méthode bancale, si la taille de tes données est trop importante ou vient à trop grossir, tu vas te retrouver avec des pbs de perfs :/... A quoi servent ces fichiers Excel, où, plus précisément, comment sont-ils remplis ?
 
Edit : une autre solution pour t'éviter trop de développement : tu fais une macro VBA (appelée via une tâche planifiée) qui exporte en CSV tes fichiers excel puis les importent dans une BD style MYSQL. Ensuite, via des requêtes SQL :
* soit tu génères direct le fichier Report s'il n'est pas d'un format trop complexe.
* soit tu génères un CSV qui contient toutes les données que tu injectes ensuite dans un onglet du fichier Report, onglet où les éventuelles formules/graphiques viendront chercher les données et se mettre à jour.


Message édité par rufo le 06-08-2013 à 11:48:48

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-08-2013 à 21:25:49    

Merci pour ta réponse rufo.
 
Je m'explique mieux.
Pour faire ce fichier je ne peux utilisé qu'excel. Je suis dans le service qui me demande ce travail pour une courte période. Le but est donc de créer un fichier le plus simple possible et modifiable par un ignorants en VBA (que n'importe qui puisse gérer les problèmes une fois que je serais parti).
 
C'est peux être beaucoup demander je sais.
 
Pour répondre a ta question; les Fichiers X qui correspondent chacun a un produit comprennent une centaine de ligne chacun, chaque ligne ayant un numéro unique.
L'idée est de récupérer toutes ces données dans un seul onglet du fichier Analyse et que une fois par semaine mettent a jour ce fichier via les fichiers X. (Ce fichier Analyse servirais aussi d'Archive)
Le temps de traitement n'est pas un problème.
 
Ma technique est la seul que je vois se dessiner en prenant en compte ces contraintes (et mon tout petit niveau en VBA). Mais si cela s'avers trop compliqué je peux essayer de vendre la méthode avec Base de données (que je trouve beaucoup plus pro).
 
Voila, j’espère avoir été plus claire cette fois ci.
 
La question que je pose est :
Est'il possible de créer un gestionnaire de donnée avec Excel comme seul outil ?
Et comment ?
 
Une autre question : qu'a tu contre Access ?


Message édité par airbuco le 06-08-2013 à 21:26:43
Reply

Marsh Posté le 07-08-2013 à 10:41:48    

Quitte à faire une BD, autant prendre un vrai SGBD. Access n'en est pas un et en plus, il est payant contrairement à Mysql ou PostGres.
 
Tout faire sous Excel, je vois se profiler des pbs de gestion des erreurs, de performances et sur du moyen termes, des risques que ta méthode "s'écroule" du fait de la grande taille des données. Quand je vois certains de mes fichiers Excel (qu'on m'a légué) qui font seulement qq Mo avec genre 1000 lignes mais pas mal de formules pour chaque ligne, le temps que ça met à se rafraichir, si toi, t'as 100 lignes par fichier produit, si t'as ne serait-ce que 100 produits, t'es déjà 10 000 lignes ! Or, comme ton fichier doit servir d'archive aussi, il ne va faire que grossir :/
 
Une BD, c'est fait pour gérer ce volume de données.
 
Tu pourrais nous indiquer plus précisément le besoin final. Parce que de ce que tu me dis, on a l'impression que les fichiers Excel servent de gestion de données techniques de produits plus un qui permet d'analyser certaines de ces données (genre faire des stats ?). Or, il existe des logiciels gratuits de type GEDT (gestion électronique de données techniques) qui font tout ça très bien.
 
Pour finir sur la méthode à base de BD, si tu documentes bien ton travail, n'importe qui devrait être capable de maintenir en état de fonctionnement ton truc.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 07-08-2013 à 22:42:25    

Je n'ai qu'une dizaine de fichiers X a scruter a chaque fois avec entre 50 et 200 lignes chacun.
Il n'y a que les données de ces lignes à conserver (sans les formules).
Les données peuvent êtres archivé tout les 6 mois si besoin est (un autre avantage est de conserver une sauvegarde si le fichier Analyse plante).
 
Je travail dans l'aéronautique, donc bien que préférant travailler sur des logiciels libres, je ne peux pas le faire. La contrainte majeur est l'utilisation de la suite Office 2010 (de préférence que Excel mais je peux m'arrangé pour négocier l'utilisation d'Access).
 
Ça sens les ennuis à plein nez je sais.
 
Y a-t-il des méthode autre que celle que j'ai proposé pour récupérer et mettre a jour ces ligne dans un seul onglet ?
Je ne suis pas contre étudier toutes les possibilités mais avec Office 2010.


Message édité par airbuco le 07-08-2013 à 22:49:12
Reply

Marsh Posté le 08-08-2013 à 11:17:49    

Y'a pas de miracle, avec un outil de m.... (j'entends par là qu'Office est pas adapté au travail qu'on te demande de faire), tu pourras faire que de la m....
 
Ce genre de projet moisi, ça commence et fini toujours de la même manière. Au début, y'a "juste" qq fichiers/données à traiter. Donc, le chef de projet (qui souvent n'y connait pas grand chose en dév) a la brillante idée de proposer Excel comme solution, comme ça, ça coûte pas cher et c'est rapide à mettre en oeuvre. Déjà, à la mise en prod, on se rend compte des limitations (ah, tiens, on peut pas travailelr à 2 sur ton fichier de report, à tiens, le traitement s'est pas fait parce que machin avait laissé ouvert sur son poste l'un des fichiers à traiter...). Et au cours du temps, les données grossissent : Excel rame de plus en plus et ça merde de plus en plus... jusqu'au jour où Excel en peut plus et là, la solution marche plus. Et là, le chef de projet (s(il est toujours en poste) décide de mettre le bousin à la poubelle et de prendre un stagiaire pour mettre en oeuvre une nouvelle solution...
 
Moi, je dis : autant coder dès le départ une bonne solution pérenne dans le temps ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed