Extraire le texte d'un SmartArt

Le
TedIF
Bonjour

Je tente de récupérer en VBA le texte contenu dans les formes d'un
SmartArt d'un document Word 2007 (ce qui apparaît dans le volet texte).
J'arrive bien à parcourir les n rectangles de mon WordArt, mais
impossible de trouver le texte contenu dans chacun d'eux.

Voici mon code pour parcourir mon graphique

Set iShape = ActiveDocument.InlineShapes(1)
For ctr = 1 To iShape.GroupItems.Count
If iShape.GroupItems.Item(ctr).AutoShapeType = msoShapeRectangle Then
msgbox iShape.GroupItems.Item(ctr).????
End If
Next ctr

Quelle propriété utiliser pour récupérer le texte ?

Merci d'avance

--

Dominique
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Geo
Le #18393341
Bonjour

[Réponse faite sur le forum public Word :
news://msnews. microsoft.com/microsoft.public.fr.word ]

msgbox iShape.GroupItems.Item(ctr).????



Je mettrais plutôt iShape.Range.Text
mais pas testé.

--
A+
TedIF
Le #18393331
Geo a présenté l'énoncé suivant :
Bonjour

[Réponse faite sur le forum public Word :
news://msnews. microsoft.com/microsoft.public.fr.word ]

msgbox iShape.GroupItems.Item(ctr).????



Je mettrais plutôt iShape.Range.Text
mais pas testé.



iShape.Range.Text me retourne '' pour chaque forme, au lieu du contenu
réel. Je ne comprends pas pourquoi ce caractère.

--

Dominique
Geo
Le #18393671
Bonjour

iShape.Range.Text me retourne '' pour chaque forme, au lieu du contenu réel. Je ne
comprends pas pourquoi ce caractère.



Il ne doit pas y avoir beaucoup de types pour lesquels on peut
récupérer du texte, c'est clair que pour une image ou un graphique ce
n'est pas possible.

--
A+
TedIF
Le #18394051
> Il ne doit pas y avoir beaucoup de types pour lesquels on peut récupérer du
texte, c'est clair que pour une image ou un graphique ce n'est pas possible.



Dans le cas présent il y a du texte dans chacun des rectangles.

--

Dominique
Geo
Le #18397141
Bonjour

Il ne doit pas y avoir beaucoup de types pour lesquels on peut récupérer du texte,
c'est clair que pour une image ou un graphique ce n'est pas possible.



Dans le cas présent il y a du texte dans chacun des rectangles.



Regardez le type de l'inlineShapes.
Si ce n'est pas confidentiel, mettez un exemple sur www.cjoint.com

--
A+
TedIF
Le #18397941
>
Regardez le type de l'inlineShapes.



ActiveDocument.InlineShapes(1).type retourne 15

Si ce n'est pas confidentiel, mettez un exemple sur www.cjoint.com



Je prépare un exemple.

Merci pour votre aide

--

Dominique
Geo
Le #18399111
Bonjour

Regardez le type de l'inlineShapes.



ActiveDocument.InlineShapes(1).type retourne 15



Argh ! D'après l'aide, ce n'est pas prévu.

Si ce n'est pas confidentiel, mettez un exemple sur www.cjoint.com



Je prépare un exemple.



OK

--
A+
TedIF
Le #18402951
Geo a utilisé son clavier pour écrire :
Bonjour

Regardez le type de l'inlineShapes.



ActiveDocument.InlineShapes(1).type retourne 15



Argh ! D'après l'aide, ce n'est pas prévu.

Si ce n'est pas confidentiel, mettez un exemple sur www.cjoint.com



Je prépare un exemple.



OK



Voici le lien pour le fichier exemple : http://cjoint.com/?bspUHNGWHJ

--

Dominique
Geo
Le #18405191
Bonjour

Voici un élément de réponse :
http://cjoint.com/?bsuK41F32m

En fait l'inline shape est le smartArt, il faut donc dérouler ses
composants pour pouvoir accéder au texte de chacun.
C'est un peu expérimental comme approche, il faudra peut-être la
compléter.
Je n'ai pas compris pourquoi on ne peut pas affecter une shape à une
shape, d'où la déclaration en Object.

pensez à mettre Option Explicit, vous pouvez dire à Vbe de le faire
pour vous, ça évite de l'oublier.
Et si vous ne connaissez pas Debug.Print prenez quelques minutes pour
apprendre à vous en servir, c'est nettement plus pratique que des
msgbox pour la mise au point.

[Réponse faite sur le forum public Word :
news://msnews. microsoft.com/microsoft.public.fr.word ]

--
A+
TedIF
Le #18406851
Geo avait soumis l'idée :
Bonjour

Voici un élément de réponse :
http://cjoint.com/?bsuK41F32m

En fait l'inline shape est le smartArt, il faut donc dérouler ses composants
pour pouvoir accéder au texte de chacun.
C'est un peu expérimental comme approche, il faudra peut-être la compléter.
Je n'ai pas compris pourquoi on ne peut pas affecter une shape à une shape,
d'où la déclaration en Object.

pensez à mettre Option Explicit, vous pouvez dire à Vbe de le faire pour
vous, ça évite de l'oublier.
Et si vous ne connaissez pas Debug.Print prenez quelques minutes pour
apprendre à vous en servir, c'est nettement plus pratique que des msgbox pour
la mise au point.

[Réponse faite sur le forum public Word :
news://msnews. microsoft.com/microsoft.public.fr.word ]



Merci bien.

Il fallait le trouver ! Bravo.

Et tout à fait ok pour le Debug.print.


Autre question :

Peut-on retrouver dans le parcours des composants du SmartArt, la
hiérarchie des textes comme définie dans le Volet Texte ?

Merci d'avance pour votre aide

--

Dominique
Publicité
Poster une réponse
Anonyme