IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 MySQL Discussion :

Traitement de fichiers Excel avec MySql


Sujet :

MySQL

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut Traitement de fichiers Excel avec MySql
    Bonjour,
    Je fais appel à vos lumières pour le problème suivant :
    J'ai des fichiers excel dans tous les sens, avec des têtes pas possibles, et chacun contient une partie des informations dont j'ai besoin.
    Impossible de modifier quoi que ce soit dans ces fichiers car trop de personnes travaillent dessus.

    J'aimerais créer et alimenter une base de données avec une table article, une table promo(avec la composition des articles), une table avec les quantités prévues, commandées etc.

    Je filtre donc les fichiers horribles avec des macros, qui font des vérifications etc => j'obtiens des fichiers "propres". Chacun des fichiers propres me permettrait d'alimenter ma base de donnée (et en cas de souci, je peux très facilement revenir en arrière et réalimenter la BD)

    A partir de la base de donnée, j'aimerais pouvoir produire "à nouveau..." des fichiers excel assez complexes (avec des formules etc) afin que tout le monde ai les mêmes informations.

    Bien entendu, dans les fichiers recréés, des nouvelles colonnes seront nécessaires avec de nouvelles informations (sorties elles-aussi de la BD) au cours du temps.

    Des nouveaux types de données vont certainement apparaître (info sur telle ou telle chose provenant d'un nouveau fichier Excel => à intégrer)
    Les fichiers traités sont de taille importante.
    J'ai pense que tout faire sur Excel peut être très long mais peut-être que je me trompe.


    J'ai donc plusieurs questions :
    1. L'idée de passer par une base de donnée est-elle bonne?
    2. MySql ou Access (je pensais MySql qui semble plus "costaud" et gratuit => je pourrais m'en resservir pour mon usage personnel une fois que je saurais m'en servir )
    3. Le temps de traitement avec une BD sera-t-il vraiment moins important avec une BD? (pour la création des fichiers, la mise à jour des données, la récupération des données des fichiers créés etc)


    Très long ce post, désolé, mais je ne sais pas comment m'y prendre pour expliquer ce problème du fait que je n'ai aucune base en Base de données (mais je suis prêts à apprendre!!).

  2. #2
    Membre régulier Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Points : 102
    Points
    102
    Par défaut
    Bonsoir...

    J'ai un peu de mal à comprendre l'utilité de ton projet. Pourquoi veux-tu utiliser une base ? Les fichiers excels ne suffisent plus ? Dans ce cas mieux vaut abandonner complètement l'utilisation de ces fichiers... Ta question est surprenante dans le sens où Excel n'est pas vraiment censé jouer le rôle d'un base de données... Il est vrai que de nombreuses PME par exemple l'ont adopté comme instrument de gestion global mais s'en mordent les doigts dès qu'ils commencent à s'agrandir car cette solution manque cruellement d'évolutivité.
    Dans ce genre de situation, je préconiserai une solution peut-être un peu plus lourde / complexe à réaliser mais aussi plus pérenne et fiable : réaliser une appli (ou un intranet) de gestion commerciale qui permettrait de manipuler toutes ces données après les avoir transférées sur une base mySQL ou SQL Server (ou encore Access)....
    Si tu disposes de connaissances en matière de programmation, cela permettra d'éviter de nombreuses erreurs, de conserver l'intégrité des données...

    Sinon, il est possible de faire des import / exports csv dans mySQL (le CSV est un fichier texte qui peut-être normalement ouvert avec excel par exemple).
    Pour aller d'un fichier CSV vers une table : http://dev.mysql.com/doc/refman/5.0/fr/load-data.html
    Pour aller d'une table vers un fichier CSV : http://dev.mysql.com/doc/refman/5.0/...ge-engine.html

    Bonne continuation
    Guigouz

  3. #3
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 324
    Points
    4 324
    Par défaut
    Bonjour,

    Le format CSV peut en effet servir d'intermédiaire pour réaliser la migration des données.

    Comme le dit guigouz, souvent les jeunes entreprises basent leurs informations sur des jeux de feuilles Excel et se laissent dépassé par la taille de l'information qui devient ingérable.
    Cependant ici il n'est pas question de réaliser une application complète de gestion d'entreprise, mais de trouver une solution adapté à l'existant.

    Pour mieux répondre au problème je dirais :
    1/ Oui, le SGBD est tout a fait indiqué.
    2/ L'un ou l'autre est possible, c'est une question de gout, pour ma part je ne conseillerais MySQL, tu pourra attaquer MySQL depuis ton VBA.
    http://alaindefrance.wordpress.com
    Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
    SDE at BitTitan

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    Merci de vos réponses!

    En fait, je suis obligé de travailler à partir de fichiers excel utilisés par des dizaines de personnes.
    J'ai donc fait du vba sur excel afin de récupérer les informations qui m'intéressent.

    A partir de vos réponse, je continue de penser qu'il faut mettre en place une base de donnée.
    Je ne connais ni le langage pour les bases de données ni le langage me permettant de générer des nouveaux fichiers excel à partir de ma base de donnée. (je pensais à PHP car des éléments semblent exister pour gérer des fichiers excel et le langage semble robuste)
    Je suis prêts à apprendre tout ça.

    En gros,
    1. J'ai différents fichiers me permettant d'alimenter mes futures tables
    2. Je dois générer des tableaux excels pour que les gars puissent entrer leurs nouvelles données (prévisions etc).
    3. Je dois récupérer ces nouvelles données dans une autre table (Table qtes prévues).
    4. Je dois générer à partir de là des fichiers excel divers afin de pouvoir commander les produits.

    ps1 : tout le monde travaille sur excel donc je ne peux pas passer par une interface de saisie (les gars font des recherches verticales depuis leurs fichiers)
    ps2 : je compte recréer un fichier qui récupère les données saisies avec la bonne tête pour l'intégrer dans la table qtes précues
    ps3 : ça veut dire quoi
    attaquer MySqldepuis ton VBA
    ?

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Mélanger une base de données et des fichiers Excel répartis, c'est l'idéal pour n'avoir jamais les bonnes données à jour !

    Si tu veux te mettre à fréquenter assidûment le couple PHP/MySQL, autant monter un projet solide entièrement basé là-dessus avec une interface de type web qui permettra aux utilisateurs d'avoir ce qu'ils avaient avant... en mieux !

    1ère étape : recenser les besoins REELS. Inutile de vouloir construire un porte avions quand un petit voilier de plaisance suffit.

    2ème étape : faire une maquette des écrans de saisie et des écrans de résultats produits par le logiciel et les proposer aux utilisateurs afin qu'ils soient d'accord sur les fonctionnalités et éviter qu'ils ne refassent leurs tableaux Excel dans leur coin et qu'ils reviennent te voir 6 mois après la sortie du bijou que tu leur auras concocté pour tout changer.

    3ème étape : estimer les coûts et durées de conception, développement, tests pour ne pas subir plus tard les foudres de tes supérieurs qui finiront par trouver que ça coûte cher et des utilisateurs qui trouvent que c'est trop lent à venir.

    4ème étape : Tout est validé par les utilisateurs et ta hiérarchie ? Tu te sens toujours capable de la faire tout seul ? Au boulot et bon courage ! Sinon, sous-traite à des pros.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre régulier Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Points : 102
    Points
    102
    Par défaut
    +1 pour CinePhil

    La réponse est claire et tout à fait appropriée à la situation dans laquelle tu es !

    Bonne continuation
    Guigouz

  7. #7
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    Bonjour,

    J'avais envisagé de prendre le problème à la racine.
    Le souci est que cela aurait énormément de répercussions :
    Je devrais "bousculer" les hatudes d'une 20ène de personnes, juste au niveau de la saisie des informations initiales.
    Même chose pour une 15ène de personnes travaillant à partir de ces fichiers. Sauf pour 5 de ces personnes, la saisie des données n'est pas l'essence de leur poste. Aucune formation particulière pour ce type d'outil.
    De plus, je me retrouverai avec la responsabilité de tout problème survenant à l'un de ces postes et en aval (ça peut très facilement se répercuter aux US...). Donc de la maintenance à faire.

    Mon chef n'a aucune envie que j'ai à gérer ce type de problème, ce n'est pas mon travail et il ne me laissera pas le temps de tout concevoir.
    Théoriquement, mon boulot serait uniquement de me servir de ces données et de travailler dessus. Sauf que pour le cas ça relève du rêve.


    Mon but :
    Je dois donc récupérer les données des différents fichiers Excel dans des fichiers temporaires Excel.


    Les étapes :

    Etape 1 :
    2 des fichiers temporaires (n'appartenant qu'à moi) représenteront chacun une table complète (ils ont toutes les données à jour de la table qui les récupèrera par la suite).
    Ces 2 fichiers temporaires iront donc "écraser les tables correspondantes".

    Etape 2 :
    Une fois que toutes mes tables seront crées, je génèrerai des fichiers Excel à partir d'Access ne possèdant que les informations nécessaires avec en plus des colonnes de saisie.

    Etape 3 :
    Les fichiers auront à coup sûr subi des modification assez violentes, j'aurais protégé les noms des articles et le nom des colonnes de saisie. Ces noms me serviront de clé pour la récupération des données.

    Etape 4 :
    Je mets à jour la table corresondant aux données saisies.

    C'est ultra violent au début, mais dans mon cas, je ne vois pas de solution plus efficace sachant qu'en plus les 2 fichiers devant écraser des tables sont créés et testés.

    pb : je ne sais pas encore créer une base de donnée Access et encore moins comment récupérer mes données en écrasant une table ou en la mettant à jour, sans parler de la création des fichiers Excels servant à la saisie.

    Bon point : je suis super motivé et prêt à apprendre. Peut-être qu'à moyen terme, selon mes compétences, je serai assez doué pour reprendre le problème à la racine en minimisant les risques au maximum. Mais pour le moment, je ne le sens pas et cela m'embarquerait sur une pente glissante.

    Ce n'est donc pas que je ne veux pas prendre le problème à la racine mais que je ne le peux pas actuellement. J'espère que malgré cela, vous m'accorderez votre aide par la suite pour réaliser mon projet.

  8. #8
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    Merci à tous.
    Je vais donc débuter avec les tutoriels d'Access

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. traitement d'un fichier Excel avec Perl
    Par moiamatoallah dans le forum Langage
    Réponses: 4
    Dernier message: 18/03/2013, 14h00
  2. Traitement fichier Excel avec insertion en base
    Par luvtribe dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 23/11/2011, 16h48
  3. [phpMyAdmin] Importer une fichier Excel dans MySQL
    Par fraisa1985 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 11/07/2008, 14h56
  4. Traitement fichier excel avec vb6
    Par couscoussier dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 12/09/2006, 16h15
  5. ouvrir un fichier Excel avec une requete perso
    Par legillou dans le forum Access
    Réponses: 9
    Dernier message: 21/06/2005, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo