Forum des développeurs  

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é.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Powerpoint > VBA PowerPoint

Réponse
 
Outils de la discussion
Vieux 18/07/2008, 18h31   #1 (permalink)
Invité régulier
 
Date d'inscription: décembre 2006
Messages: 16
Par défaut modifier le background d'une cellule

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.
ktulu77 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/07/2008, 19h48   #2 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 9 809
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

Je n'ai pas PowerPoint 2007 sous la main, mais demain matin.

Pourrais-tu nous mettre la partie du code que tu essayes de faire fonctionner.

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 21/07/2008, 10h47   #3 (permalink)
Invité régulier
 
Date d'inscription: décembre 2006
Messages: 16
Par défaut

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;
  }
 
Voilà, donc je répète que ça marche très bien sur un tableau sans thème.

Merci beaucoup.

Dernière modification par ktulu77 ; 21/07/2008 à 11h40
ktulu77 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 21/07/2008, 11h00   #4 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 9 809
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

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
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 21/07/2008, 11h39   #5 (permalink)
Invité régulier
 
Date d'inscription: décembre 2006
Messages: 16
Par défaut

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
 
Ce code marche bien, une fois que je lui ai mis ce thème, les couleurs sont bien prises en compte, seulement, je perd le thème que l'utilisateur avait mis.

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.
ktulu77 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 21/07/2008, 11h51   #6 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 9 809
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Re

Tu mets False, hors il faut mettre True pour conserver le thème.

Citation:
Envoyé par ktulu77 Voir le message
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.
Cela je l'avais compris.

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 21/07/2008, 14h05   #7 (permalink)
Invité régulier
 
Date d'inscription: décembre 2006
Messages: 16
Par défaut

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); 
 
c'est pareil, quand je modifie la couleur de fond de mes cellules, il ne se passe rien, ça garde les couleurs du thème.

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
ktulu77 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/08/2008, 13h04   #8 (permalink)
Invité régulier
 
Date d'inscription: décembre 2006
Messages: 16
Par défaut

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
ktulu77 est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Powerpoint > VBA PowerPoint

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide