Urgent: Export données

gon_ak Messages postés 197 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 17 novembre 2006 - 28 août 2006 à 12:14
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 29 août 2006 à 00:11
Bonjour à tous,

Voilà j'ai un petit souci, voici mon code:

Private Sub cmdExport_Click()

'Création d'un fichier .xls
Dim MyXl As Excel.Application
Set MyXl = CreateObject("Excel.Application")

'Paramétrage du fichier .xls
MyXl.WindowState = xlMaximized
MyXl.Visible = True
MyXl.ShowWindowsInTaskbar = True
MyXl.DisplayFormulaBar = True
MyXl.Caption = "Exportation des données"
MyXl.Workbooks.Add
MyXl.Worksheets(1).Name = "Feuille 1"

'Exportation des données
For ii = 1 To DataGrid1.ApproxCount
MyXl.Worksheets(1).Range("A" & ii).Value = DataGrid1.Columns(0).Value
Next ii

End Sub

Je ne comprends pas pourquoi lorsque je le compile, il me met "Erreur d'accès aux données" pour la partie Exportation des données. J'ai besoin d'un coup de pouce!
Merci d'avance pour votre aide.

6 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
28 août 2006 à 12:23
As-tu Excel d'installé sur ton PC ?
Micorsoft Excel x.x Object Library est-il coché dans les références du projet ?

Sur quelle ligne se produit l'erreur ?

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
gon_ak Messages postés 197 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 17 novembre 2006
28 août 2006 à 12:32
Oui j'ai excel sur mon PC et j'ai coché Microsoft Excel 10.0 Object library dans les références

L'erreur s'affiche sur :
"MyXl.Worksheets(1).Range("A" & ii).Value = DataGrid1.Columns(0).Value"
Il me met "Erreur d'accès données"
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 août 2006 à 13:47
Salut,


Essaie de mettre
MyXl.Worksheets(1).Range("A" & ii).Value = ii

Comme cela on pourra voir si le problème est du côté d'excel ou du DataGrid.

Sinon essaie la propriété Text de l'objet range au lieu de la propriété Value;

NOTE. A quoi sert ta boucle car tu mets la meme valeur dans toutes les cellules parcourues.






@+, Julien
0
gon_ak Messages postés 197 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 17 novembre 2006
28 août 2006 à 14:27
salut jrivet,

j'ai essayé ce que tu m'as conseillé: il me met, "erreur définit par l'application ou l'objet" et lorsque je remplace value par text: "erreurd'accès aux données"

Je ne comprends pas pourquoi?
j'attends tes commentaires, merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gon_ak Messages postés 197 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 17 novembre 2006
28 août 2006 à 14:36
J'ai oublié de préciser pourquoi j'ai fait une boucle for:
En fait le contenu de ma datagrid peut varié en fonction des critères choisis. Elle peut contenir 4 enregistrements ou plus ou moins et donc je veux exporter ces données vers excel.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
29 août 2006 à 00:11
Je pense que tu doives spécifier le Workbook.

Tu crées une Application Excel, tu ajoutes un Workbook et tu lis la feuille du Workbook de l'application...


J'ai pas essayé parce que ce n'est pas ma façon de procéder, mais ça pourrait être la solution (?)

MyXl.ActiveWorkbook.Worksheets(1).Range("A" & ii).Value = DataGrid1.Columns(0).Value


J'irais plus comme ceci

    Dim xlApp As Excel.Application

    Dim xlBook As Excel.Workbook

    Dim xlSheet As Excel.Worksheet


    Set xlApp = New Excel.Application

    Set xlBook = xlApp.Workbooks.Open(App.Path & "\toto.xls")

    Set xlSheet = xlBook.Sheets("Feuil1")


Et s'il faut que tu crées un nouveau classeur plutôt que d'en ouvrir un, tu y vas de ta méthode

xlApp.Workbooks.Add

set xlBook = xlApp.ActiveWorkBook


En ayant des variables-objets bien déterminés, il est plus facile de s'y retrouver


MPi
0
Rejoignez-nous