Après windows pour les nuls, voici PB pour les bons (ou presque).

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » [RESOLU] PB7.0-OLE-XLS-Utilisation fonctions avec paramètres et constantes

#1 04-09-2007 16:24:32

vincenteraptor  
Membre
Date d'inscription: 19-07-2007
Messages: 8
Pépites: 45
Banque: 0

[RESOLU] PB7.0-OLE-XLS-Utilisation fonctions avec paramètres et constantes

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:

Code: vb

'expression.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)

'Exemples
'Cet exemple montre comment trier la plage A1:C20 de la feuille Sheet1, en utilisant la cellule A1 comme première clé de tri et la cellule B1
'comme deuxième clé de tri. Le tri est effectué en ordre croissant par ligne et il n'y a pas d'en-tête. Cet exemple suppose que la plage A1:C20 
'contient des données.

Sub SortRange1()
   Worksheets("Sheet1").Range("A1:C20").Sort _
        Key1:=Worksheets("Sheet1").Range("A1"), _
        Key2:=Worksheets("Sheet1").Range("B1")
End Sub
    
'Cet exemple montre comment trier la zone contenant la cellule A1 (zone active) de la feuille Sheet1, en triant les données dans la première 
'colonne et en utilisant automatiquement une ligne d'en-tête, s'il en existe une. Cet exemple suppose que la zone active, contenant la cellule A1, 
'contient des données. La méthode Sort détermine la zone active automatiquement.

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:

Code: pb

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 ":"):

Code: pb

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:

Code: pb

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

Code: pb

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:

Code: pb

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 14:15:09)

Hors ligne

 

#2 05-09-2007 07:22:03

FMolinas  
Membre Geek
Lieu: Lyon
Date d'inscription: 12-06-2007
Messages: 87
Pépites: 97
Banque: 6,435,474,948,567

Re: [RESOLU] PB7.0-OLE-XLS-Utilisation fonctions avec paramètres et constantes

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

 

#3 05-09-2007 12:07:52

vincenteraptor  
Membre
Date d'inscription: 19-07-2007
Messages: 8
Pépites: 45
Banque: 0

Re: [RESOLU] PB7.0-OLE-XLS-Utilisation fonctions avec paramètres et constantes

MERCI !!!!

Cela semble fonctionner.

Voici le code pour ceux qui rencontreraient le même problème:

Code: pb

lo_ole.Range("A10:N13").Select
lo_ole.Selection.Sort(lo_ole.Range("B10"),2) // le 2 correspond à xlDescending pour l'ordre, valeur récupérée par l'explorateur d'objets de VB
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

 

#4 05-09-2007 12:23:20

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] PB7.0-OLE-XLS-Utilisation fonctions avec paramètres et constantes

Salut
Peux tu modifier le titre du premier message et mettre [RESOLU]


Face à l'agression, la puissance de l'intelligence

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » [RESOLU] PB7.0-OLE-XLS-Utilisation fonctions avec paramètres et constantes

Pied de page des forums

Propulsé par FluxBB 1.2.22