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

VB 6 et antérieur Discussion :

[VB6 + EXCEL] Importer des données dans EXCEL


Sujet :

VB 6 et antérieur

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Par défaut [VB6 + EXCEL] Importer des données dans EXCEL
    Salut,

    Sous VB6, j'aimerais faire l'action suivante :

    1. J'utilise ADO pour me connecter à une base ACCESS et rapatrier des données via un RecordSet
    2. Ce qu'il y a dans le RecordSet, je voudrais le réintégrer dans une feuille EXCEL déjà créée

    Comment faire ?

    J'ai déjà le code suivant, comment procéder ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
     
    'Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
    'Ouverture d'un fichier Excel
    Set wbExcel = appExcel.Workbooks.Open("C:\Documents and Settings\login\My Documents\Version 2.0\integration.xls")
    'wsExcel correspond à la première feuille du fichier
    Set wsExcel = wbExcel.Worksheets(1)
    ...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Par défaut
    Voilà j'ai une ébauche de réponse, en utilisant ADO et un recordset pour remplir au fur et à mesure la feuille EXCEL :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    Dim i As Integer
        Dim path As String
        Set xlwbook = xl.Workbooks.Open(App.path & "\" & CheminFichierExcel2)
        Set xlsheet = xlwbook.Sheets.Item(1)
     
        path = App.path
        path = path & FichierDB
        Set cnx = New ADODB.Connection
        Set rst = New ADODB.Recordset
        'Définition du pilote de connexion
        cnx.Provider = "Microsoft.Jet.OLEDB.4.0"
        'Définition de la chaîne de connexion
        cnx.ConnectionString = path
        cnx.Open
        rst.Open ReqGalaad, cnx
     
        'On commence à remplir la feuille EXCEL à partir de la ligne 2
        i = 1
        While Not (rst.EOF)
            xlsheet.Cells(i, 1) = rst("NOM")
            xlsheet.Cells(i, 2) = rst("PRENOM")
            xlsheet.Cells(i, 3) = rst("CP")
            xlsheet.Cells(i, 4) = rst("COMMUNE")
            xlsheet.Cells(i, 5) = rst("DIGIMEDIA.C_RET")
            xlsheet.Cells(i, 6) = rst("PREFIXE")
            xlsheet.Cells(i, 7) = rst("CARTE")
            xlsheet.Cells(i, 8) = rst("Q_TITRES_AGO")
            xlsheet.Cells(i, 9) = rst("Q_TITRES_AGE")
            xlsheet.Cells(i, 10) = rst("N_ASSEMBLE")
            xlsheet.Cells(i, 11) = rst("N_PARTICIP")
            xlsheet.Cells(i, 12) = rst("L_NOM_TITULAIRE")
            xlsheet.Cells(i, 13) = rst("L_PREN_TITULAIRE")
            xlsheet.Cells(i, 14) = rst("SQL1_TA0BZF.C_RET")
            xlsheet.Cells(i, 15) = rst("C_PREFIX")
            xlsheet.Cells(i, 16) = rst("N_CARTE")
            xlsheet.Cells(i, 17) = rst("Q_TITRES")
            xlsheet.Cells(i, 18) = rst("Q_VOIX")
            xlsheet.Cells(i, 19) = rst("I_PRESENT")
            xlwbook.Save
            rst.MoveNext
            i = i + 1
        Wend
        rst.Close
        cnx.Close
        xl.ActiveWorkbook.Close False, App.path & "\" & CheminFichierExcel2
        xl.Quit
    Le problème c'est que cette intégration prend beaucoup trop de temps.
    Avez-vous d'autres suggestions ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Par défaut
    Salut,

    J'ai trouvé une autre piste pour exporter plutôt que d'utiliser un recordset et d'exporter tout au fur et à mesure dans une feuille EXCEL, mais quand je lance l'exe, on me dit que la requête "controle_ecarts_ago_age_galaad" n'est pas trouvée alors qu'elle existe bien dans ACCESS !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    soft.DoCmd.OutputTo acOutputForm, "controle_ecarts_ago_age_galaad", acSpreadsheetTypeExcel9, App.path & "\" & CheminFichierExcel1, True
    Est-ce que c'est possible d'utiliser cela dans VB6 ? Est-on obligé de passer par une macro ACCESS ?

    Merci pour toute réponse.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Par défaut
    En fin de compte j'ai placé ce code dans une macro que j'appelle depuis un programme VB6.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/04/2015, 22h18
  2. Réponses: 5
    Dernier message: 03/06/2011, 12h57
  3. [Excel] Importer des données dans Excel
    Par kendras dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 29/09/2008, 13h35
  4. Importer des données dans Excel
    Par denis finch dans le forum Excel
    Réponses: 2
    Dernier message: 28/09/2006, 18h27

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