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 25/09/2008, 16h29   #1 (permalink)
Invité de passage
 
Date d'inscription: septembre 2008
Localisation: à mon PC
Âge: 25
Messages: 9
Par défaut Couleur dégradé sur un shape

Bonjour à tous.

Je souhaite metre un gradient sur des shape avec 2 couleurs que je défini.
L'aide du ne m'apporte pas plus d'information...
Le gradient doit être horizontale et la couleur plus foncé en desous.

D'avance je vous remercie...

Bien à vous,

Kevin
Akxn0008 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/09/2008, 19h43   #2 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 361
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

Je suis en train de rédiger un gros articles sur la création des shapes, j'allais abordé la partie dégradé.

L'aide te donnera des indications si tu trouves les bons mots.

Chaque shape possède une propriété Fill qui correspond au remplissage. En utilisant l'explorateur d'objet (F2), recherches FillFormat, et là intéresse toi à la méthode TwoColorGradient.

L'aide te donnera un exemple, il faut donc deux couleurs (Forecolor et Backcolor), la méthode TwoColorGradient, a des paramètres qui te permettent de définir le Style (prendre msoGradientHorizontal), et pour la valeur Variant prend 1.

Je pense que ces indications plus l'aide maintenant que tu as les bons mots devraient t'aider.

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 déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/09/2008, 22h42   #3 (permalink)
Invité de passage
 
Date d'inscription: septembre 2008
Localisation: à mon PC
Âge: 25
Messages: 9
Par défaut

Bonsoir Starec,

Merci pour ta réponse mais cela ne marche pas comme je me souhaite. J'ai mis comme code ceci
Code :
With ActivePresentation.Slides(NumSlides).Shapes.AddShape(msoShapeRectangle, 240, 120 + (SpaceGraph * g), (400 / RespLeg * xlWsh.Range("C" & f).Value), HeightGraph)
    With .Fill
        .ForeColor.RGB = Kleur
        .BackColor.RGB = RGB(Red:=170, Green:=170, Blue:=170)
        .TwoColorGradient Style:=msoGradientHorizontal, Variant:=1
    End With
    'ici vient encore du code concernant le bord etc...
End With
 
Kleur est ma variable couleur suivant les informations du fichier Excel.
J'ai bien un dégradé mais il va de ma couleur "Kleur" vers le blanc sans prendre la couleur "BackColor". De plus le dégradé n'est pas horizontal, je remarque ceci sur des rectangle plus haut.

Pour information; j'ai Office 2007. Je ne sais pas si il y a eu des changement dans les version...

Merci,

Kevin
Akxn0008 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/09/2008, 23h17   #4 (permalink)
Invité de passage
 
Date d'inscription: septembre 2008
Localisation: à mon PC
Âge: 25
Messages: 9
Par défaut

Re...

Pour l'horizontal c'est ok. Mais je reste avec ma couleur ForeColor et du blanc et non BackColor...

Kevin
Akxn0008 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 26/09/2008, 04h44   #5 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 361
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

Rajoutes cette instruction DoEvents de la manière suivante pour voir, j'ai fait un test avec le code suivant, j'ai bien les deux couleurs (fait sur PPT 2007).

Code :
Public Sub toto()
 
Dim shp As Shape
Set shp = ActivePresentation.Slides(1).Shapes.AddShape(msoShapeRectangle, 240, 240, 100, 100)
 
    With shp
            .Fill.TwoColorGradient msoGradientHorizontal, 1
            .Fill.ForeColor.RGB = RGB(255, 0, 0)
            .Fill.BackColor.RGB = RGB(0, 250, 0)
            .Fill.Visible = msoTrue
            DoEvents
    End With
    
    'ici vient encore du code concernant le bord etc...
 
End Sub
 
Essayes de l'adapter avec ton cas, en gardant l'ordre des instructions.

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

Dernière modification par Philippe JOCHMANS ; 26/09/2008 à 07h19
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 26/09/2008, 10h11   #6 (permalink)
Invité de passage
 
Date d'inscription: septembre 2008
Localisation: à mon PC
Âge: 25
Messages: 9
Par défaut

Bonjour Starec,

Merci. Ca fonctionne, en fait je métais le code .TwoColorGradient après les couleur. Je l'ai mis avant et voilà .

Merci à toi encore une fois

Bonne journée,

Kevin
Akxn0008 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBA

Réponse

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



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