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

Macros et VBA Excel Discussion :

Exporter Excel vers Mysql


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    kap
    kap est déconnecté
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 188
    Par défaut Exporter Excel vers Mysql
    Bonjour à tous !!

    Je dispose de fichiers Excels que j'aimerais exporter vers MySQL. Mes fichiers Excels sont assez conséquent (jusqu'à 129 Mo) et leurs structures ne correspondent pas à celle de ma base de donnée. Je dois effectuer quelques pré-traitements avant de pouvoir faire l'ajout dans ma bdd. J'ai commencé par regarder des librairies php :
    • PHPExcel : mes fichiers étant lourds, le script a des problèmes de mémoire ou de temps d'exécution
    • COM : je n'arrive pas à trouver la documentation concernant les méthodes de l'objet COM ( le tutorial ne fournit que des exemples pour l'écriture de fichier Excel)

    Auriez-vous d'autres pistes à me proposer? Quelle vous semble la meilleure solution pour exporter les données? Merci d'avance pour vos réponses!

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 122
    Par défaut
    Salut
    Je ne suis pas très alèse en base de donnée, mais as tu regardé du coté d'ADO, il est possible à partir d'un fichier excel légé, contenant juste ta macro d'intégration, de concidérer ton fichier excel contenant tes donnée, uniquement comme une base de donnée et de la manipuler comme telle. Regarde ici dans la FAQ.
    Sinon une autre piste serait peut être de passer par Access et d'importer ta BD dans Access à partir de celui-ci.
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    kap
    kap est déconnecté
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 188
    Par défaut
    Merci pour tes réponses !!
    Citation Envoyé par Qwazerty Voir le message
    Sinon une autre piste serait peut être de passer par Access et d'importer ta BD dans Access à partir de celui-ci.
    ++
    Qwaz
    Humm... Je préfère limiter le nombre d'étapes intermédiaires autant que possible, je sens que le passage Excel à Access va poser des soucis

    Pour ADO je regarde mais j'ai du mal à comprendre... La documentation de Microsoft est bien bordélique (je trouve) et je n'arrive pas à trouver les informations basiques (comment ça s'installe, fonctions de base...). Côté VBA je galère aussi mais j'ai réussi à pondre un code pour accéder à mes données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub Workbook_Open()
     
        Dim Classeur As Workbook
        Dim UL As Worksheet
        Dim AgCentre As Worksheet
        Dim AgPopTot As Worksheet
        Dim AgNb As Worksheet
     
        NomFichier = Application.GetOpenFilename("Classeurs Excel(*.xls),*.xls")
        Set Classeur = Workbooks.Open(NomFichier)
        Set UL = Classeur.Sheets("_UL")
        Set AgCentre = Classeur.Sheets("_AgCentre")
        Set AgPopTot = Classeur.Sheets("_AgPopTot")
        Set AgNb = Classeur.Sheets("_AgNb")
     
        Dim ID_agglo As String
        Dim Name_agglo As String
        Dim X_agglo As Double
        Dim Y_agglo As Double
     
        For compteur = 1 To UL.Rows.Count Step 1
            If UL.Range("AU" & compteur) = "i" Or UL.Range("AU" & compteur) = "z1" Then
                ID_agglo = UL.Range("A" & compteur)
                Name_agglo = UL.Range("J" & compteur)
                X_agglo = UL.Range("DR" & compteur)
                Y_agglo = UL.Range("DS" & compteur)
                MsgBox ID_agglo
            End If
        Next compteur
    End Sub
    Si vous avez des remarques sur le code je suis preneur

  4. #4
    kap
    kap est déconnecté
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 188
    Par défaut
    J'ai ajouté ce code pour essayer de me connecter à ma base mySQL mais ça ne fonctionne pas... Vous avez une idée du problème?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
        ' Declaration des varables de connexion a la base
        Dim DSN As String
        Dim Server As String
        Dim DataBase As String
        Dim Login As String
        Dim Pass As String
     
        ' Server MySQL
        Server = "localhost" ' ou 192.168.200.9
        ' Nom de la base
        DataBase = "egeopolis"
        ' Utilisateur pour la connexion
        Login = "root"
        ' Mot de passe de l'utilisateur
        Pass = ""
        ' Création de la chaine de connexion a la base
        DSN = "driver={MySql};server=" & Server & ";db=" & DataBase & ";UID=" & Login & ";pwd=" & Pass & ";option=2048"
     
        ' Instantiation des objets d'utilisation de la base
        Set Db = New ADODB.Connection
     
        ' Parametrage de la connexion base
        Db.ConnectionTimeout = 30
        Db.CommandTimeout = 30
     
        ' Connexion a la base
        Db.Open DSN

Discussions similaires

  1. que faire pour exporter de excel vers mysql via php ?
    Par kaayna dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/02/2010, 10h18
  2. [SGBD] transfert d'une base de données excel vers mysql
    Par Groshaeny Roger dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 28/03/2006, 23h29
  3. Extraire une Base de donnée Excel vers Mysql ??
    Par Arvulis dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/01/2006, 22h58
  4. [Excel] Exportation de donnée excel vers MySQL
    Par yoda7666 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/11/2005, 16h18

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