IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA PowerPoint Discussion :

modifier le background d'une cellule


Sujet :

VBA PowerPoint

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 16
    Points : 9
    Points
    9
    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.

  2. #2
    Invité
    Invité(e)
    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

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 16
    Points : 9
    Points
    9
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      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.

  4. #4
    Invité
    Invité(e)
    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

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 16
    Points : 9
    Points
    9
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        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.

  6. #6
    Invité
    Invité(e)
    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

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 16
    Points : 9
    Points
    9
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    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.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 16
    Points : 9
    Points
    9
    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

Discussions similaires

  1. [JTable]Définir à tout moment le background d'une cellule
    Par krolineeee dans le forum Composants
    Réponses: 10
    Dernier message: 11/09/2006, 17h35
  2. modifier le contenu d'une cellule
    Par STEPH69000 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/06/2006, 17h12
  3. [POI]recuperer et modifier les données d'une cellule
    Par corbier32 dans le forum Documents
    Réponses: 5
    Dernier message: 04/05/2006, 10h41
  4. [VB.NET]Modifier le background d'une MessageBox
    Par informix2006 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/04/2006, 00h37
  5. Changer le background d'une cellule de JTable
    Par m@t dans le forum Composants
    Réponses: 8
    Dernier message: 27/11/2005, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo