Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous,
j'utilise la fonction subtotal() pour réaliser des sous-totaux dans un fichier excel avec le code suivant:
integer li_rs oleObject lo_ole integer li_colonnes[ ] = {13,16,17} lo_ole = CREATE OLEObject li_rs = lo_ole.ConnectToNewObject("Excel.Application") lo_ole.workbooks.open("C:\temp\toto.xls") lo_ole.Range("A9:S56").Select lo_ole.Selection.Subtotal(1, -4157, li_colonnes, false, false) lo_ole.application.displayalerts=false lo_ole.ActiveWorkbook.Save() lo_ole.activeworkbook.close() lo_ole.application.displayalerts=true lo_ole.quit() lo_ole.disconnectobject() DESTROY lo_ole
Le résultat est plutôt pas mal car j'ai bien les lignes de sous-totaux qui se sont insérées mais cependant, à la place de la somme attendue pour chaque sous-total, j'ai #N/A ce qui signifie que les données sont non accessibles.
De plus, lorsque je fais le sous-total en manuel avec Excel 2000, j'ai un système de déploiement de sous-totaux qui apparaît sur la gauche et avec le fichier créé avec PB : rien.
Cependant lorsque je modifie le fichier créé par PB j'ai un message d'Excel disant que la version d'excel du fichier est 2.1
Je pense donc que le problème vient du fait que la version est trop vieille !!!!! J'en arrive donc à ma question: comment enregistrer / créer un fichier excel en spécifiant la version ?
Merci d'avance pour vos commentaires.
Vince
Dernière modification par vincenteraptor (05-09-2007 15:08:09)
Hors ligne
C'est bon j'ai trouvé !!!!!
J'ai procédé ainsi:
lo_ole.ActiveWorkbook.SaveAs("C:\temp\skv58929.xls", 39) // 39 = format Excel5
A+
Vince.
Hors ligne
Sans vouloir trop m'avancer je pense alors que tu peux même faire
lo_ole.ActiveWorkbook.SaveAs("C:\temp\skv58929.xls", Excel8!)
Pour l'avoir en Excel 8
Hors ligne
Ben j'essayerai
Cela est plus lisible au niveau code.
Merci.
Vincent.
Hors ligne