Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Identifier les shapes d'une slide

10 réponses
Avatar
Jacques
Bonsoir,

Comment connaître le nom de shapes existants dans une slide?

Est-ce possible manuellement en sélectionnant la shape à la souris? Et par
VBA? Comment connaître le nombre et la liste des shapes d'une slide avec
leurs noms?

merci

10 réponses

Avatar
Geo

Bonsoir,

Comment connaître le nom de shapes existants dans une slide?

Est-ce possible manuellement en sélectionnant la shape à la souris? Et par
VBA? Comment connaître le nombre et la liste des shapes d'une slide avec
leurs noms?


Par exemple :
Option Explicit

Sub ListerShapes()
Dim Diapo As Slide
Dim Message As String
Dim S As Shape
Message = "Liste des Shapes" & vbCr
With ActivePresentation
For Each Diapo In .Slides
Message = Message & "Diapo numéro : " & Diapo.SlideNumber & vbCr
For Each S In Diapo.Shapes
Message = Message & "Shape : " & S.Name & vbCr
Next
Next Diapo
End With
MsgBox Message
End Sub

--
A+

Avatar
Jacques
Merci mais comment savoir à quelles shapes d'une slide les noms
correspondent?


"Geo" a écrit dans le message de groupe de discussion :


Bonsoir,

Comment connaître le nom de shapes existants dans une slide?

Est-ce possible manuellement en sélectionnant la shape à la souris? Et par
VBA? Comment connaître le nombre et la liste des shapes d'une slide avec
leurs noms?


Par exemple :
Option Explicit

Sub ListerShapes()
Dim Diapo As Slide
Dim Message As String
Dim S As Shape
Message = "Liste des Shapes" & vbCr
With ActivePresentation
For Each Diapo In .Slides
Message = Message & "Diapo numéro : " & Diapo.SlideNumber & vbCr
For Each S In Diapo.Shapes
Message = Message & "Shape : " & S.Name & vbCr
Next
Next Diapo
End With
MsgBox Message
End Sub

--
A+

Avatar
Nikita
Salut,

pour connaître le noms des objets sur une diapo :
dans ta barre de dessin, tu peux ajouter l'outil Sélectionner plusieurs
objets. Il donne la liste des objets de la diapo active.
Va dans Affichage, Barre d'outils, Personnaliser. Dans l'onglet
Commandes, Dessin, amène l'outil Sélectionner plusieurs objets dans ta
barre de dessin.

Et pour renommer un objet, j'utilise ce bout de code :
Sub RenommerObjet()
strNvNom = InputBox("Taper l'alias")
With ActiveWindow.Selection.ShapeRange
.Name = strNvNom
End With
End Sub

Sinon, remplace ta version par la 2007 dans laquelle les noms d'objets
sont immédiatement identifiables et renommables sans VBA.

Niki


Merci mais comment savoir à quelles shapes d'une slide les noms
correspondent?


"Geo" a écrit dans le message de groupe de discussion :


Bonsoir,

Comment connaître le nom de shapes existants dans une slide?

Est-ce possible manuellement en sélectionnant la shape à la souris? Et par
VBA? Comment connaître le nombre et la liste des shapes d'une slide avec
leurs noms?


Par exemple :
Option Explicit

Sub ListerShapes()
Dim Diapo As Slide
Dim Message As String
Dim S As Shape
Message = "Liste des Shapes" & vbCr
With ActivePresentation
For Each Diapo In .Slides
Message = Message & "Diapo numéro : " & Diapo.SlideNumber & vbCr
For Each S In Diapo.Shapes
Message = Message & "Shape : " & S.Name & vbCr
Next
Next Diapo
End With
MsgBox Message
End Sub


--
Niki


Avatar
Geo

Merci mais comment savoir à quelles shapes d'une slide les noms
correspondent?


Pour connaître le nom d'un objet, sélectionnez le et, dans la fenêtre
d'exécution, tapez :
? ActiveWindow.Selection.ShapeRange.Name
Vous aurez le nom en retour.

--
A+

Avatar
Geo
Re
Sans vouloir remettre en cause votre approche,
d'une part il existe d'autres moyens de recopier le contenu d'une
cellule Excel dans une diapositive, comme le collage spécial avec
liaison,
d'autre part, si vous avez un cas précis et ponctuel, vous pouvez
mettre la diapo concernée sur cjoint.com et on vous fait un bout de
code.

--
A+
Avatar
Jacques
Merci pour le code

Faudrait ajouter une gestion d'erreur, non?, au cas où on oublie de
sélectionner un objet

merci pour le tuyau sur l'outil "Sélectionner plusieurs objets"!




"Nikita" a écrit dans le message de groupe de
discussion : 47d3898f$0$882$
Salut,

pour connaître le noms des objets sur une diapo :
dans ta barre de dessin, tu peux ajouter l'outil Sélectionner plusieurs
objets. Il donne la liste des objets de la diapo active.
Va dans Affichage, Barre d'outils, Personnaliser. Dans l'onglet
Commandes, Dessin, amène l'outil Sélectionner plusieurs objets dans ta
barre de dessin.

Et pour renommer un objet, j'utilise ce bout de code :
Sub RenommerObjet()
strNvNom = InputBox("Taper l'alias")
With ActiveWindow.Selection.ShapeRange
.Name = strNvNom
End With
End Sub

Sinon, remplace ta version par la 2007 dans laquelle les noms d'objets
sont immédiatement identifiables et renommables sans VBA.

Niki


Merci mais comment savoir à quelles shapes d'une slide les noms
correspondent?


"Geo" a écrit dans le message de groupe de discussion :


Bonsoir,

Comment connaître le nom de shapes existants dans une slide?

Est-ce possible manuellement en sélectionnant la shape à la souris? Et
par
VBA? Comment connaître le nombre et la liste des shapes d'une slide avec
leurs noms?


Par exemple :
Option Explicit

Sub ListerShapes()
Dim Diapo As Slide
Dim Message As String
Dim S As Shape
Message = "Liste des Shapes" & vbCr
With ActivePresentation
For Each Diapo In .Slides
Message = Message & "Diapo numéro : " & Diapo.SlideNumber & vbCr
For Each S In Diapo.Shapes
Message = Message & "Shape : " & S.Name & vbCr
Next
Next Diapo
End With
MsgBox Message
End Sub


--
Niki


Avatar
Jacques
Oui j'utilise déjà le collage spécial avec liaison

J'ai un classeur Excel qui reprend les bilans et comptes de résultat d'un
certain nombre de sociétés : 2 slides par sociétés, 1 pour le bilan et
l'autre pour le compte de résultat. Le nombre de sociétés varie et donc le
nombre de slides. Bilan et compte de résultat sont le résultat d'un coller
avec liaison depuis Excel

A partir de 2 slides modèle, je duplique en vba ces paires de slides et
modifie les liaisons (toujours en vba) vers 2 autres noms de Excel associés
à cette société - Ca j'y arrive. je supprime ensuite les 2 slides modèles
(je voudrais en fait pourvoir les conserver en slides masquées [si ça
existe] qui ne seraient alors ni imprimées ni incluses dans le décompte des
pages)

En fait la liste des sociétés est en dur dans le code va de PowerPoint. Je
voudrais pouvoir aller lire la liste des sociétés dans le fichier Excel,
d'où ma 1ère question "Lire des cellules Excel 2003 en VBA" puis construire
les slides correspondantes à partir de cette liste

Les sociétés sont dans une liste Excel (code société + nom de la société) du
classeur qui contient également les bilans et comptes de résultat.

Pour ma 2ème question ici "Identifier les shapes d'une slide" je n'arrive
pas à gérer 2 liaisons Excel dans la même slide. Je modifie la liaison d'une
slide mais pas d'un objet de la slide

Merci

"Geo" a écrit dans le message de groupe de discussion :

Re
Sans vouloir remettre en cause votre approche,
d'une part il existe d'autres moyens de recopier le contenu d'une
cellule Excel dans une diapositive, comme le collage spécial avec
liaison,
d'autre part, si vous avez un cas précis et ponctuel, vous pouvez
mettre la diapo concernée sur cjoint.com et on vous fait un bout de
code.

--
A+
Avatar
Geo

J'ai un classeur Excel [...]

(je voudrais en fait pourvoir les conserver en slides masquées [si ça
existe] qui ne seraient alors ni imprimées ni incluses dans le décompte des

pages)


Voici un extrait de l'aide de la version 2007 :
-------
Cet exemple montre comment masquer la diapositive 2 dans la
présentation active.
ActivePresentation.Slides(2).SlideShowTransition.Hidden = msoTrue
------
Et un autre pour l'impression :
------
Cet exemple montre comment imprimer toutes les diapositives, visibles
ou masquées, dans la présentation active.
With ActivePresentation
.PrintOptions.PrintHiddenSlides = msoTrue
.PrintOut
End With
------
C'est sûr que venant d'Excel, il n'est pas étonnant que vous soyez
dépaysé.

En fait la liste des sociétés [...] de résultat.


D'accord, ça marche ? ou vous avez encore des soucis ?

Pour ma 2ème question ici "Identifier les shapes d'une slide" je n'arrive
pas à gérer 2 liaisons Excel dans la même slide. Je modifie la liaison d'une
slide mais pas d'un objet de la slide


C'est un truc que je n'ai jamais fait, et je ne trouve pas grand chose
dans l'aide.
L'enregistreur de macro donne quelque chose ?

Ceci dit, recopier les données dans les diapositives, sans liaison, a
aussi ses avantages.

--
A+


Avatar
Jacques
Merci pour toutes ces réponses!

mais la numérotation ne tient pas compte des slides masquées

Ceci dit, recopier les données dans les diapositives, sans liaison, a
/aussi ses avantages.


Non pas pour moi. Les données bougent fréquemment


"Geo" a écrit dans le message de groupe de discussion :


J'ai un classeur Excel [...]

(je voudrais en fait pourvoir les conserver en slides masquées [si ça
existe] qui ne seraient alors ni imprimées ni incluses dans le décompte

des
pages)


Voici un extrait de l'aide de la version 2007 :
-------
Cet exemple montre comment masquer la diapositive 2 dans la
présentation active.
ActivePresentation.Slides(2).SlideShowTransition.Hidden = msoTrue
------
Et un autre pour l'impression :
------
Cet exemple montre comment imprimer toutes les diapositives, visibles
ou masquées, dans la présentation active.
With ActivePresentation
.PrintOptions.PrintHiddenSlides = msoTrue
.PrintOut
End With
------
C'est sûr que venant d'Excel, il n'est pas étonnant que vous soyez
dépaysé.

En fait la liste des sociétés [...] de résultat.


D'accord, ça marche ? ou vous avez encore des soucis ?

Pour ma 2ème question ici "Identifier les shapes d'une slide" je n'arrive
pas à gérer 2 liaisons Excel dans la même slide. Je modifie la liaison
d'une
slide mais pas d'un objet de la slide


C'est un truc que je n'ai jamais fait, et je ne trouve pas grand chose
dans l'aide.
L'enregistreur de macro donne quelque chose ?

Ceci dit, recopier les données dans les diapositives, sans liaison, a
aussi ses avantages.

--
A+


Avatar
Nikita
Salut,

pour la gestion d'erreur, tu la traites comme tu veux. Soit tu places
un simple On Error Resume Next sans précision si tu ne veux pas te
retrouver dans le code, soit tu affiches un message.
Pour mon utilisation perso, j'ai fait simple mais je n'oublie pas de
sélectionner :)

Niki


Merci pour le code

Faudrait ajouter une gestion d'erreur, non?, au cas où on oublie de
sélectionner un objet

merci pour le tuyau sur l'outil "Sélectionner plusieurs objets"!




"Nikita" a écrit dans le message de groupe de
discussion : 47d3898f$0$882$
Salut,

pour connaître le noms des objets sur une diapo :
dans ta barre de dessin, tu peux ajouter l'outil Sélectionner plusieurs
objets. Il donne la liste des objets de la diapo active.
Va dans Affichage, Barre d'outils, Personnaliser. Dans l'onglet
Commandes, Dessin, amène l'outil Sélectionner plusieurs objets dans ta
barre de dessin.

Et pour renommer un objet, j'utilise ce bout de code :
Sub RenommerObjet()
strNvNom = InputBox("Taper l'alias")
With ActiveWindow.Selection.ShapeRange
.Name = strNvNom
End With
End Sub

Sinon, remplace ta version par la 2007 dans laquelle les noms d'objets
sont immédiatement identifiables et renommables sans VBA.

Niki


Merci mais comment savoir à quelles shapes d'une slide les noms
correspondent?


"Geo" a écrit dans le message de groupe de discussion :


Bonsoir,

Comment connaître le nom de shapes existants dans une slide?

Est-ce possible manuellement en sélectionnant la shape à la souris? Et
par
VBA? Comment connaître le nombre et la liste des shapes d'une slide avec
leurs noms?


Par exemple :
Option Explicit

Sub ListerShapes()
Dim Diapo As Slide
Dim Message As String
Dim S As Shape
Message = "Liste des Shapes" & vbCr
With ActivePresentation
For Each Diapo In .Slides
Message = Message & "Diapo numéro : " & Diapo.SlideNumber & vbCr
For Each S In Diapo.Shapes
Message = Message & "Shape : " & S.Name & vbCr
Next
Next Diapo
End With
MsgBox Message
End Sub



--
Niki