PB à toute heure et à tout moment. (à parcourir avec modération)

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.

#1 02-12-2010 10:16:04

frichmout  
Membre Geek
Date d'inscription: 13-12-2006
Messages: 54
Pépites: 260
Banque: 0

Quelques tuyaux commandes OLE EXCEL

Bonjour,

J'aurais besoin de quelques tuyaux pour quelques commandes OLE Excel que je n'arrive pas à piloter depuis PB.

Insérer une ligne après avoir sélectionné une ligne, l'équivalent du VBA : Selection.Insert Shift:=xlDown

déplacer un onglet; l'équivalent du VBA : Sheets("Feuil2").Move After:=Sheets(3)

En fait, plus généralement, la façon de passer les paramètres nommés.

Evidemment, si un tutoriel vraiment complet existe sur la manipulation d'excel depuis PB, je suis preneur.
Je précise que je suis allé voir un certain nombre d'exemples sur le faux rhum, évidemment. Mais pas trouvé ça.
merci

Hors ligne

 

#2 02-12-2010 10:46:35

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Quelques tuyaux commandes OLE EXCEL

Bonjour, avec PB tu ne peux pas spécifier un argument (p.ex Shift:=xlDown), tu es obligé de passer tous les arguments obligatoires.


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 02-12-2010 10:54:49

frichmout  
Membre Geek
Date d'inscription: 13-12-2006
Messages: 54
Pépites: 260
Banque: 0

Re: Quelques tuyaux commandes OLE EXCEL

ok, mais comment savoir quels sont ces arguments ? j'ai essayé oleviewer mais je n'ai rien compris à son utilisation...j'avoue.
j'utilise une feuille excel modèle contenant l'entête et une ligne bien formattée (couleurs, cadrages, tout ça) et je veux ajouter autant de lignes que j'ai de lignes dans ma dw à exporter.

Hors ligne

 

#4 02-12-2010 11:01:35

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Quelques tuyaux commandes OLE EXCEL

Regarde sur MSDN la syntaxe des fonctions : http://msdn.microsoft.com/en-us/library … 11%29.aspx


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#5 02-12-2010 11:24:03

frichmout  
Membre Geek
Date d'inscription: 13-12-2006
Messages: 54
Pépites: 260
Banque: 0

Re: Quelques tuyaux commandes OLE EXCEL

Merci pour le lien. J'ai un peu progressé. Je pense que mon problème vient du fait que je ne savais pas à quel objet je dois appliquer la méthode insert.
Parce qu'en fait, les paramètres par défaut (au moins dans un premier temps) vont m'aller.
en faisant ça :
o_selection = o_onglet.Range("6:6")
o_selection.Insert
ça fonctionne. Je vais maintenant essayer de passer la constante xldown qui semble valoir -4121

Hors ligne

 

#6 02-12-2010 13:31:51

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: Quelques tuyaux commandes OLE EXCEL

Oui, c'est bien ça.

Perso, j'utilise l'object browser depuis VBA


never let people work on more than one thing at once.

Hors ligne

 

#7 02-12-2010 13:35:35

frichmout  
Membre Geek
Date d'inscription: 13-12-2006
Messages: 54
Pépites: 260
Banque: 0

Re: Quelques tuyaux commandes OLE EXCEL

J'ai à peu près réussi ce que je voulais faire. Il me reste à remplir une cellule (ou une plage) avec une formule.
o_onglet.Range("N6:N200").Formula = "=10*PI()" fonctionne parfaitement
par contre o_onglet.Range("N6:N200").Formula = "=RC[-2]-RC[-1]" ainsi que o_onglet.Range(xrange).FormulaR1C1 = "=RC[-2]-RC[-1]" vont aux lions !
C'est pourtant ultra basique comme formule...

Hors ligne

 

#8 02-12-2010 14:00:40

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Quelques tuyaux commandes OLE EXCEL

ton classeur est bien en mode RC ?
la cellule n'est pas en mode texte ? (=> .NumberFormat = "General")


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#9 02-12-2010 14:09:37

frichmout  
Membre Geek
Date d'inscription: 13-12-2006
Messages: 54
Pépites: 260
Banque: 0

Re: Quelques tuyaux commandes OLE EXCEL

de ce coté, je pense que tout est OK puisque la syntaxe "=RC[-2]-RC[-1]" , je l'ai choppée via l'enregistreur de macro, sur ma feuille.
Ce que je pige vraiment pas, c'est pourquoi il accepte "=10*PI()". On dirait que la notation relative lui plait pas.
Je récupère une erreur PB : Error accessing external object property formula ligne xx du user event yyy. Alors qu'avec 10 fois PI, ça passe comme une lettre à la poste.
j'ai aussi essayé "=10*RC[-1]" qui vautre aussi.
Au fait, ce ne seraient pas les crochets que perso je n'utilise jamais dans PB ??

Hors ligne

 

#10 02-12-2010 14:23:49

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Quelques tuyaux commandes OLE EXCEL

normalement y'a pas besoin d'échapper les crochets dans les chaines (?)
tu peux toujours essayer en mettant un char(91) et un char(93) à la place...


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#11 02-12-2010 14:35:43

frichmout  
Membre Geek
Date d'inscription: 13-12-2006
Messages: 54
Pépites: 260
Banque: 0

Re: Quelques tuyaux commandes OLE EXCEL

that's exactly what I did !! c'est pareil de chez même chose. Pour PB (v10.5.2), la propriété formula ne peux pas être remplie avec une chaîne de caractères comme "=10*RC[-1]"
alors que "=L6-M6" fonctionne impec, figure toi !
Donc tu dois avoir raison à propos du mode, bien que ça ne trouble absolument pas Excel pour enregistrer ou exécuter une macro qui elle utilise des références RC.
Merci Erasorz !!

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22