OVH Cloud OVH Cloud

VBA: Identité objet dans Diaporama

2 réponses
Avatar
DelphineD
Bonjour,

J'ai un code VBA assez perfectionné qui permet, à l'aide d'un userform, de
changer la couleur d'un carré en mode diaporama. Le problème est que j'ai un
userform par carré, ce qui rend le code un peu lourd. J'aimerais avoir un
userform que j'utiliserais pour tous les carrés.
Pour ce faire, je souhaite capturer l'identité d'un objet Shapes sur lequel
je clique en mode diaporama, pour le ranger dans une variable. Je pourrai
ensuite utiliser cette variable pour identifier l'objet Shape à manipuler en
sortie de mon userform.
J'utilise la ligne suivante:

indic = ActiveWindow.Selection.ShapeRange.Name

Cela fonctionne très bien hors mode diaporama (je fais une exécution pas à
pas après avoir sélectionné le carré qui m'intéresse). Mais quand j'essaie
de l'exécuter directement en cliquant sur le carré en mode diaporama, j'ai
bien le userform, mais quand je valide ça plante.

J'espère que quelqu'un peut m'aider sur ce problème.

Delphine

2 réponses

Avatar
Jean-Pierre FORESTIER
Pourquoi un code VBA ? Alors que les animations d'objets le font toutes
seules ; d'autant plus que tu peux grouper plusieurs objets pour obtenir
l'effet que tu cherches ?

--
Jean-Pierre FORESTIER Microsoft MVP PowerPoint
Auteur de PowerPoint 2002 chez Micro Application
"DelphineD" a écrit dans le message
news:
Bonjour,

J'ai un code VBA assez perfectionné qui permet, à l'aide d'un userform, de
changer la couleur d'un carré en mode diaporama. Le problème est que j'ai
un

userform par carré, ce qui rend le code un peu lourd. J'aimerais avoir un
userform que j'utiliserais pour tous les carrés.
Pour ce faire, je souhaite capturer l'identité d'un objet Shapes sur
lequel

je clique en mode diaporama, pour le ranger dans une variable. Je pourrai
ensuite utiliser cette variable pour identifier l'objet Shape à manipuler
en

sortie de mon userform.
J'utilise la ligne suivante:

indic = ActiveWindow.Selection.ShapeRange.Name

Cela fonctionne très bien hors mode diaporama (je fais une exécution pas à
pas après avoir sélectionné le carré qui m'intéresse). Mais quand
j'essaie

de l'exécuter directement en cliquant sur le carré en mode diaporama, j'ai
bien le userform, mais quand je valide ça plante.

J'espère que quelqu'un peut m'aider sur ce problème.

Delphine



Avatar
DelphineD
En fait, il s'agit pour le destinataire du power point de changer la couleur
du carré en cliquant dedans (il a alors un UserForm qui lui demande ce qu'il
veut faire).



Pourquoi un code VBA ? Alors que les animations d'objets le font toutes
seules ; d'autant plus que tu peux grouper plusieurs objets pour obtenir
l'effet que tu cherches ?

--
Jean-Pierre FORESTIER Microsoft MVP PowerPoint
Auteur de PowerPoint 2002 chez Micro Application
"DelphineD" a écrit dans le message
news:
Bonjour,

J'ai un code VBA assez perfectionné qui permet, à l'aide d'un userform, de
changer la couleur d'un carré en mode diaporama. Le problème est que j'ai
un

userform par carré, ce qui rend le code un peu lourd. J'aimerais avoir un
userform que j'utiliserais pour tous les carrés.
Pour ce faire, je souhaite capturer l'identité d'un objet Shapes sur
lequel

je clique en mode diaporama, pour le ranger dans une variable. Je pourrai
ensuite utiliser cette variable pour identifier l'objet Shape à manipuler
en

sortie de mon userform.
J'utilise la ligne suivante:

indic = ActiveWindow.Selection.ShapeRange.Name

Cela fonctionne très bien hors mode diaporama (je fais une exécution pas à
pas après avoir sélectionné le carré qui m'intéresse). Mais quand
j'essaie

de l'exécuter directement en cliquant sur le carré en mode diaporama, j'ai
bien le userform, mais quand je valide ça plante.

J'espère que quelqu'un peut m'aider sur ce problème.

Delphine