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 ?
[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
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+
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.
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
> 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
> 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.
> 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
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+
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
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
> 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
>
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
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
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+
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 ]
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
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
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 ?
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 ?