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 :

exportation datagrid vers excel


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 31
    Points
    31
    Par défaut exportation datagrid vers excel
    Bonjour,
    j'ai du mal à exporter mes données datagrid vers excel, voici un code que j'ai trouvé sur un site et que normalement doit marcher mais il marche pas chez moi
    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
     
    Dim i, j, k, l As Integer
    On Error GoTo errxcel
    Dim xlo As Object
    Set xlo = CreateObject("Excel.Application")
    DoEvents
    xlo.Visible = True
    xlo.workbooks.Add
    i = rsProv1.RecordCount
    j = DataGrid1.Columns.Count
    For k = 0 To j - 1
           xlo.workbooks(1).sheets(1).Cells(l + 1, k + 1) = DataGrid1.Columns(k).Caption
    Next k
    l = 0
    rsProv1.MoveFirst
    Do While Not rsProv1.EOF
    For k = 0 To j - 1
           DataGrid1.Col = k
           xlo.workbooks(1).sheets(1).Cells(l + 2, k + 1) = DataGrid1.Text
    Next k
    rsProv1.MoveNext
    l = l + 1
    Loop
    Exit Sub
    errxcel:
    MsgBox "Excel not found"
    je sais pas pourquoi ca marche pas, il ouvre justel'excel pas plus et bien sur j'ai le message d'erreur "excel not found" . pourquoi? est ce qu'il a quelque chose à modifier au niveau des préférences ou quoi exactement.
    Help les amis

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Points : 337
    Points
    337
    Par défaut
    Salut

    Pour importé un DataGrid tel quel dans excel j'utilise :
    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
    DIM Xlapp as Excel.Application
    Dim Xlbook as Excel.Workbook
    Dim Xlsheet as Excel.Worksheet
     
    set xlap=new Excel.application
    set xlbook = xlap.Workbooks.Add
    set xlsheet = xlbook.Worksheets(1)
     
    xlsheet.range("A1").Copy From Recordset rs
     
    xlbook.save as ...
    xlbook.close
     
    set xlsheet=Nothing
    set xlbook=Nothing
    excel.Application.Quit
    set xlapp=Nothing
    A+

    Edit : il existe d'autre solutions ou tu peu en même temps définir ta mise en page
    Edit2 : Tu noteras que j'exporte le record set et non le contenu du DataGrid (ce dernier étant rempli par un rs)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 31
    Points
    31
    Par défaut
    Merci BM42 mais il y a quelque chose qui ne va pas sur ton code!!! il est erroné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    xlsheet.range("A1").Copy From Recordset rs
     
    xlbook.save as ...
    xlbook.close
    merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Points : 337
    Points
    337
    Par défaut
    Salut

    Toute mes excuses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlsheet.range("A1").Copy From Recordset rs
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlsheet.range("A1").CopyFromRecordset rs
    A+

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 31
    Points
    31
    Par défaut
    Merci pour ta reponse mais ca marche tjrs pas:
    le code suivant ne marche pas
    je l'ai remplacé par :
    le programme se compile bien mais j'ai une erreur au niveau de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Xlsheet.Range("A1").CopyFromRecordset rs
    "Invalid procedure"
    merci

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 31
    Points
    31
    Par défaut
    S'il vous plait, quelqu'un peut ùe dire ce que ca peut etre "rsProv1" dans mon premier code; c'est la d'où vient l'erreur.
    les gars, heeeeeeeeeeeeeeeeeeeeeeeeeeelp

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Points : 337
    Points
    337
    Par défaut
    Re

    dans :
    Après le as tu doit spécifier le nom de ton fichier.
    Quand au bout de code il fonctionne je vien de le tester.
    A tu bien chargé les references excel dans ton projet ?
    dans ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Xlsheet.Range("A1").CopyFromRecordset rs
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Xlsheet.Range("A1").CopyFromRecordset rsProv1
    Si tu as un problème poste ton code

    A+

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 31
    Points
    31
    Par défaut
    voici le code, il marche tjrs pas:

    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
    Private Sub Command1_Click()
    Dim Xlapp As excel.Application
    Dim Xlbook As excel.Workbook
    Dim Xlsheet As excel.Worksheet
     
    Set xlap = New excel.Application
    Set Xlbook = xlap.Workbooks.Add
    Set Xlsheet = Xlbook.Worksheets(1)
     
    Xlsheet.Range("A1").CopyFromRecordset rs
     
    Xlbook.SaveAs App.Path & "\automation\test.xls"
    Xlbook.Close
     
    Set Xlsheet = Nothing
    Set Xlbook = Nothing
    excel.Application.Quit
    Set Xlapp = Nothing
    et c'est cette ligne qu'il n'aime pas: Xlsheet.Range("A1").CopyFromRecordset rs
    le rs je l'ai declaré au niveau du module en tant que: Public rs As adodb.Recordset c'est bien ca? j'utilise office 2007, et j'ai bien ajouter office 12 au niveau des preference.

    En plus je vois pas où est la liaison entre le datagrid1 et le fichier exel
    merci pour ton aide

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Points : 337
    Points
    337
    Par défaut
    Re

    Tu n'imprime pas un datagrid mais le recordset qui le remplie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Xlsheet.Range("A1").CopyFromRecordset rs
    rs étant ton RecordSet (dans ton cas : rsProv1)
    cette commande ce décompose suivant le principe suivant :
    Xlsheet.Range("A1") = Point de départ de l'insertiondans ton classeur Excel
    .CopyFromRecordset = Copy des données d'un recordset
    rs = Ton recordset qui rempli ton datagrid

    A+

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/01/2011, 17h21
  2. Export datagrid vers Excel et checkbox
    Par urbanspike dans le forum VB.NET
    Réponses: 4
    Dernier message: 28/07/2009, 20h08
  3. exporter données d'un datagrid vers excel
    Par kat40 dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 18/03/2008, 16h25
  4. exporté les donnees du datagrid vers excel
    Par bicho dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/09/2007, 18h28
  5. Export Datagrid vers Excel
    Par DocCoinCoin dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/04/2007, 00h06

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