![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité régulier
![]() Date d'inscription: décembre 2006
Messages: 16
|
Bonjour !
Voilà, j'utilise des appels COM pour modifier un document PowerPoint2007 mais j'ai un problème avec les thèmes des tableaux. Je n'arrive pas à modifier la couleur de fond des cellules d'un tableau si celui-ci à un thème. Si je change le style du tableau (avec l'appel applyStyle(...)) avec le style de base (fond blanc, bordures noires), cela fonctionne. J'ai essayé de refaire un applyStyle sur le tableau avec son style mais en lui disant de ne pas garder le formatage (cf http://msdn.microsoft.com/en-us/library/bb231126.aspx) mais rien n'y fait. Est-ce que quelqu'un a une solution ? Merci beaucoup pour votre aide. |
|
|
|
|
|
#3 (permalink) |
|
Invité régulier
![]() Date d'inscription: décembre 2006
Messages: 16
|
bien sûr voici mon code. Par contre, c'est en java car j'utilise un wrapper (jacob) pour faire des appels COM vers powerpoint. Mais bon, je pense que je trouverai plus d'aide ici que sur le forum java car ce n'est pas un problème java.
Code :
void setBackgroundColor(Cell parCell, Color parColorValue) { ColorFormat locColorFormat = parCell.getShape().getFill().getBackColor(); /* recupere la couleur de fond*/ locColorFormat.setRGB(getPPTRGB(parColorValue)); /* et la change avec la nouvelle */ } int getPPTRGB(final Color parColorValue) { int locNewRGB = (parColorValue.getRed()) + (parColorValue.getGreen() << 8) + (parColorValue.getBlue() << 16); return locNewRGB; } Merci beaucoup. Dernière modification par ktulu77 ; 21/07/2008 à 11h40 |
|
|
|
|
|
#4 (permalink) |
![]() |
Bonjour
ne connaissant pas Java, cela va être dur.Je comprends un peu, mais tu utilises, si j'ai bien compris, avec ton composant une interface qui fait une traduction de code VBA PowerPoint, tel que getShape, etc .... A aucun moment je ne vois applyStyle qui est une propriété VBA, hors celle-ci n'est apparu qu'avec la version 2007, celle qui a fait apparaitre vraiment les thèmes. Il se peut donc que ton composant Com jacob ne prenne pas la version 2007 en compte. C'est tout ce que je peux pour toi, malheureusement. N'est-il pas possible pas JAVA (je n'y connais rien je te rappel) de piloter PowerPoint d'une autre manière pour utiliser vraiment les commandes VBA ? Starec |
|
|
|
|
|
#5 (permalink) |
|
Invité régulier
![]() Date d'inscription: décembre 2006
Messages: 16
|
Jacob gère bien PowerPoint2007 (on utilise Jacob pour générer du code Java par rapport à n'importe quel fichier de description COM, et ici on lui a donné celui pour PowerPoint2007). Donc on utilise vraiment toutes les commandes VBA disponibles.
En fait, j'avais juste posté le code ou je change la couleur de fond. Dans l'absolu, je ne veux pas utiliser applyStyle car mon but est d'utiliser le fichier powerpoint comme un modèle (l'utilisateur fait son modèle, et ensuite, je le rempli avec des valeurs variables) : je ne veux pas modifier le thème existant. Je rajoute donc le code ou je remet le thème basique sur le tableau : Code :
Table locTable = locTableShape.getTable();
locTable.getBackground().getFill().solid();
locTable.applyStyle("5940675A-B579-460E-94D1-54222C63F5DA", false); // style basique : bordures noires fond blanc
Pour le code java, désolé, moi c'est l'inverse j'y connais rien en VBA mais c'est assez facile de s'y retrouver, il suffit de retirer les "get" ou "set" pour les appels sur les propriétés. C'est comme cela que je fais quand je regarde la documentation microsoft et tout concorde. edit : j'ai essayé de simplifier un peu le code de mon autre poste pour que ce soit plus clair. merci encore pour ton aide. |
|
|
|
|
|
#6 (permalink) | |
![]() |
Re
Tu mets False, hors il faut mettre True pour conserver le thème. Citation:
Starec |
|
|
|
|
|
|
#7 (permalink) |
|
Invité régulier
![]() Date d'inscription: décembre 2006
Messages: 16
|
si je met à true au lieu de false le deuxième argument de applyStyle, toutes mes cellules ont un background tout noir après cet appel COM. On ne voit plus rien.
C'est étrange. EDIT : on dirait que c'est parce que je le fais sur un thème basique, si je fais : Code :
locTable.getBackground().getFill().solid(); locTable.applyStyle(locTable.getStyle().getId(), true); Est-ce que toi, par l'intermédiaire de VBA, tu arrives à modifier la couleur d'une cellule d'un tableau avec un thème ? Sur Office2007, un tableau a déjà par défaut un thème de couleurs. Dernière modification par ktulu77 ; 21/07/2008 à 14h19 |
|
|
|
|
|
#8 (permalink) |
|
Invité régulier
![]() Date d'inscription: décembre 2006
Messages: 16
|
bonjour,
j'aimerai simplement savoir si quelqu'un arrive à changer la couleur de fond d'une cellule d'un tableau d'un document PowerPoint2007 avec VBA. Si oui, le code VBA m'intéresse fortement. Merci beaucoup |
|
|
|
![]() |
![]() |
||
modifier le background d'une cellule
|
||
| Outils de la discussion | |
|
|