Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Bonjour à tous,
J'ai trouvé de nombreux exemples de code sur powerbuilder à donf pour manipuler les objets OLE - EXCEL, cependant je n'arrive pas à utiliser des fonctions excel avec des paramètres et des constantes.
Je m'explique:
Je souhaite trier par exemple des lignes, donc utiliser la fonction Sort(). Dans une documentation, j'ai trouvé ceci:
'expression.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3) 'Exemples Sub SortRange1() Worksheets("Sheet1").Range("A1:C20").Sort _ Key1:=Worksheets("Sheet1").Range("A1"), _ Key2:=Worksheets("Sheet1").Range("B1") End Sub Sub SortRange2() Worksheets("Sheet1").Range("A1").Sort _ Key1:=Worksheets("Sheet1").Columns("A"), _ Header:=xlGuess End Sub
Cependant je n'arrive pas à utiliser cette fonction dans PB avec des paramètres et des constantes. J'ai essayé ceci:
lo_ole.Range("A11:F26").Select lo_ole.Selection.Sort (Key1:=Range("A11"), Order1:=xlAscending, Header:=xlGuess, & OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom)
également ceci (sans les ":"):
lo_ole.Range("A11:F26").Select lo_ole.Selection.Sort (Key1=Range("A11"), Order1=xlAscending, Header=xlGuess, & OrderCustom=1, MatchCase=False, Orientation=xlTopToBottom)
ou ceci, juste les valeurs:
lo_ole.Range("A11:F26").Select lo_ole.Selection.Sort (lo_ole.Range("A11"), "xlAscending", "xlGuess", & 1, False, "xlTopToBottom")
mais rien ne semble fonctionner. Pourtant en faisant
lo_ole.Range("A11:F26").Select lo_ole.Selection.Sort (lo_ole.Range("A11"))
j'arrive à trier mais je voudrai pouvoir utiliser les autres paramètres de la fonction. Surtout qu'après le tri je dois utiliser la fonction subtotal et j'ai le même soucis car elle a plusieurs paramètres:
expression.Subtotal(GroupBy, Function, TotalList, Replace, PageBreaks, SummaryBelowData)
Si quelqu'un a déjà utilisé les tris et sous-totaux, je le remercie d'avance pour l'aide qu'il voudra bien m'apporter.
Vincent.
Dernière modification par vincenteraptor (05-09-2007 16:15:09)
Hors ligne
J'imagine que tu as des erreurs à la compilation du script ?
Les constantes "xlChose" ne sont pas connues par PB, il te faut les redéfinir toi-même (dans ton script, en variable locale ou mieux encore dans un UserObject dédié à la communication avec Excel).
Pour connaître leur valeur : active l'explorateur d'objets de ton Visual Basic pour Excel, les énumérations que tu cherches y sont listées.
Pour ce qui est du nommage des paramètres, je ne crois pas que PB supporte cette technique. Tu en es réduit à utiliser tous les paramètres dans l'ordre.
Hors ligne
MERCI !!!!
Cela semble fonctionner.
Voici le code pour ceux qui rencontreraient le même problème:
lo_ole.Range("A10:N13").Select lo_ole.Selection.Sort(lo_ole.Range("B10"),2) lo_ole.Range("A9:N34").Select lo_ole.Selection.Subtotal(1, -4157, li_colonnes) // li_colonnes est un tableau d'entiers
Encore merci pour cette aide.
A bientôt
Vince.
Hors ligne
Salut
Peux tu modifier le titre du premier message et mettre [RESOLU]
Hors ligne
Pages: 1