Urgent: Export données

Signaler
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
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

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
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 #
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

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"
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

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.
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

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.
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
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