Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
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
Bonjour, avec PB tu ne peux pas spécifier un argument (p.ex Shift:=xlDown), tu es obligé de passer tous les arguments obligatoires.
Hors ligne
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
Regarde sur MSDN la syntaxe des fonctions : http://msdn.microsoft.com/en-us/library … 11%29.aspx
Hors ligne
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
Oui, c'est bien ça.
Perso, j'utilise l'object browser depuis VBA
Hors ligne
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
ton classeur est bien en mode RC ?
la cellule n'est pas en mode texte ? (=> .NumberFormat = "General")
Hors ligne
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
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...
Hors ligne
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