Page 1 sur 1

OLE ...

MessagePublié: 03 Juin 2003 à 09:36
par stephy
J'ai l'erreur suivante "OLE: Automation Object Error", et je n'arrive pas a la résoudre...qqun pourrait m'aider???en fait, c'est au niveau de la ligne de code suivante :WSheet.Cells(Ligne, i).Value = doc. GetItemValue (tCol(i)) (0)Je précise que il s'agit de transférer des donnees dans un tableau excel.... et je souligne que tCol, est un tableau contenant les noms de champs dont les les valeurs vont etre transmises...VoilaaaaaaaaaaJ'espere avoir des reponses au plus vite!Merci d'avancve!

Re: OLE ...

MessagePublié: 03 Juin 2003 à 09:51
par Raziel
Salut,L'erreur t'indique que tu essaie d'exécuter une commande non conforme.Pourrais tu nous donner ton code en entier (ou du moins les lignes situées au dessus de celle générant l'erreur) ?

Re: OLE ...

MessagePublié: 03 Juin 2003 à 10:09
par stephy
alors voila la partie du code 'calcul du nombre de documents selectionnés nbdoc% = collection.count Redim ListeNom(nbdoc%) As String ' debut du transfert.... Ligne = 2 Do While Not (doc Is Nothing) ' extraire les valeurs pour un document donné maxcols = 20 For i = 0 To maxcols -1 xlsSheet.cells(Ligne, i).Value = doc. GetItemValue ( tCol(i) )( 0 ) Next i Set doc = collection.GetNextDocument (doc) Ligne = Ligne + 1 Loopj'espere que ca vous aidera plus a comprendre ma question et que vous me proposerez une solution a mon probleme.... cad un changement du code ou je ne sais pas....MERCI !!!!!!!!!!!!!!!!!!!!!!Stephy

Re: OLE ...

MessagePublié: 03 Juin 2003 à 10:11
par Raziel
Salut,D'après le code que tu m'as envoyé, il me semble que le pb provienne de la ligne suivanteFor i = 0 To maxcols -1xlsSheet.cells(Ligne, i).Value = doc. GetItemValue ( tCol(i) )( 0 )Next i car lors du 1er tours de boucle, tu essaie d'écrire dans la colonne 0 ce qui me semble impossible sous excel.

Re: OLE ...

MessagePublié: 03 Juin 2003 à 10:32
par stephy
J'ai rectifié l'initialisation de l'indice i, le message d'ereur n'apparait plus!Mais, je n'arrive pas a expliquer pourquoi rien n'est transmis sous excel... pourtant il me semble que la commande xlsSheet.Cells(Ligne, i).Value = ......est correcte , non?

Re: OLE ...

MessagePublié: 03 Juin 2003 à 10:37
par Raziel
Comment est initailisé xlsSheet ?Peux tu nous donner toutes les phases par lesquelles tu passe avant d'initialiser cet objet ?

Re: OLE ...

MessagePublié: 03 Juin 2003 à 10:44
par stephy
oui biensur je vous donne les differentes etapes!alors voila le tt: Set xlsObject = CreateObject( "Excel.Application" ) ' Ouverture du fichier. En retour, on récupère le classeur'La fonction OpenXlsFile est une fonction a part... Set xlsWorkBook = OpenXlsFile ("C:\ExportXLS7.xls", xlsObject) xlsObject.Visible = False ' Récupération de la feuille data Set xlsSheet = xlsWorkbook.Worksheets("Data") ' initialisation de la collection de documents selectionnes Set collection = db.unprocessedDocuments ' On se place sur le premier document Set doc = collection.GetFirstDocument Ligne = 2 Do While Not (doc Is Nothing) ' extraire les valeurs pour un document donné maxcols = 20 For i = 1 To maxcols -1 xlsSheet.cells(Ligne, i).Value = toto Next i Set doc = collection.GetNextDocument (doc) Ligne = Ligne + 1 i = i + 1 Loopvoili voilouAlors vous en pensez quoi??????????????Aidez moi svp parce que je suis bloquée la dedans et...

Re: OLE ...

MessagePublié: 03 Juin 2003 à 11:18
par Raziel
RemplacexlsSheet.cells(Ligne, i).Value = totopar xlsSheet.cells(Ligne, i).Value = "toto"Pour info, tu peux remplace Next i par Next