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

Extraire le texte d'un SmartArt

12 réponses
Avatar
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

10 réponses

1 2
Avatar
Geo
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+
Avatar
TedIF
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
Avatar
Geo
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+
Avatar
TedIF
> 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
Avatar
Geo
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+
Avatar
TedIF
>
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
Avatar
Geo
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+
Avatar
TedIF
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
Avatar
Geo
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+
Avatar
TedIF
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
1 2