OLE ...

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

OLE ...

Messagepar stephy » 03 Juin 2003 à 09:36

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!
stephy
 

Re: OLE ...

Messagepar Raziel » 03 Juin 2003 à 09:51

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) ?
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: OLE ...

Messagepar stephy » 03 Juin 2003 à 10:09

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
stephy
 

Re: OLE ...

Messagepar Raziel » 03 Juin 2003 à 10:11

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.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: OLE ...

Messagepar stephy » 03 Juin 2003 à 10:32

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?
stephy
 

Re: OLE ...

Messagepar Raziel » 03 Juin 2003 à 10:37

Comment est initailisé xlsSheet ?Peux tu nous donner toutes les phases par lesquelles tu passe avant d'initialiser cet objet ?
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: OLE ...

Messagepar stephy » 03 Juin 2003 à 10:44

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...
stephy
 

Re: OLE ...

Messagepar Raziel » 03 Juin 2003 à 11:18

RemplacexlsSheet.cells(Ligne, i).Value = totopar xlsSheet.cells(Ligne, i).Value = "toto"Pour info, tu peux remplace Next i par Next
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix


Retour vers Développement