OVH Cloud OVH Cloud

images dans une page

7 réponses
Avatar
Géo
Hello , et joyeux Noel !!

...va falloir que j'eteigne la becane ou ca va grogner :-))

heu ... ha oui :

il est possible de passer tous les mots d'une pages / d'un selection /
ou autre au moyen du tableau .words(x) --> .words.count.

est-il possible de faire la meme chose avec les images ? en conservant
un pointeur sur la place de l'image dans le texte (entre le words(x) et
le words(y)) ?

Merci d'avance et bonne fetes




Géo

7 réponses

Avatar
Geo
Bonjour Géo


Hello , et joyeux Noel !!

...va falloir que j'eteigne la becane ou ca va grogner :-))


Tu es donc prié de ne lire la réponse que demain :-)

heu ... ha oui :

il est possible de passer tous les mots d'une pages / d'un selection /
ou autre au moyen du tableau .words(x) --> .words.count.


Suis pas sûr d'avoir bien compris "passer au moyen d'un tableau"
Mais t'es même pas obligé d'avoir le count,
tu peux faire :
For each Mot in activedocument.words

est-il possible de faire la meme chose avec les images ? en conservant
un pointeur sur la place de l'image dans le texte (entre le words(x)
et le words(y)) ?


Pour balayer les images :
For Each Image In ActiveDocument.Shapes
ou si tes images sont insérées dans le texte, ce qui a l'air d'être le cas
:

For Each Image In ActiveDocument.InlineShapes
Mais si demain, tu nous expliques ce à quoi tu veux aboutir, il y en aura
peut-être un(e) qui pourra te répondre.

Merci d'avance et bonne fetes


Merci et à toi aussi

Géo


Geo

Avatar
Géo
Ce que je veux faire :


dans une boucle, passer tous lesmots d'une selection ou autre, jusque-la
il n'y pas de probleme, en utilisant l'objet Words, je peux passer tous
les mots.

Par contre la ou cela se gate :

- les images , je peux les passer une a une avec l'objet inlineShapes
(mes images sont inserees) , mais je sais pas comment prendre en compte
la position de mon objet dans le texte.
- les lettrines sont vues comme des lettres a part ( et avec un retour
chariot apres elles)

Pour un texte :
--------------------------------------------------------------------
blabaalabaé blablablala lalalabalakla
lkakab blablablala blablablala blablablala
blablablala blablablala v v blablablala

+------------------+
| image |
+------------------+

blablablala blablablala blablablala vv blablablala
blablablala blablablala blablablala v
------------------------------------------------------------------------

je voudrai pouvoir boucler sur tout le contenu y compris l'image , a la
limite, pour pouvoir ressortir le texte "pur" , avec un tag pour l'image
(je sais bien que l'image ne sera pas convertie en texte), rien que de
savoir la position de l'image dans le texte me suffit.

Au final :
------------------------------------------------------------------------
blabaalabaé blablablala lalalabalakla
lkakab blablablala blablablala blablablala
blablablala blablablala v v blablablala

[image 1] <------------exemple

blablablala blablablala blablablala vv blablablala
blablablala blablablala blablablala v
-----------------------------------------------------------------------

Voila je ne sais pas si je me suis bien exprime !

Amicalament

Géo
Avatar
Geo
Bonjour Géo


Ce que je veux faire :


dans une boucle, passer tous lesmots d'une selection ou autre,
jusque-la il n'y pas de probleme, en utilisant l'objet Words, je
peux passer tous les mots.

Par contre la ou cela se gate :

- les images , je peux les passer une a une avec l'objet inlineShapes
(mes images sont inserees) , mais je sais pas comment prendre en
compte la position de mon objet dans le texte.


Tu peux faire un truc comme ça :
Sub SuppImages()
Dim i As Integer
Dim MonImage As InlineShape
Options.ReplaceSelection = True
i = 1
For Each MonImage In ActiveDocument.InlineShapes
MonImage.Select
Selection.TypeText (" [image " & i & "]")
i = i + 1
Next
End Sub

- les lettrines sont vues comme des lettres a part ( et avec un retour
chariot apres elles)


Rien trouvé l'aide vba ne connaît même pas ce mot.
Si un bilingue connaît la traduction... :-)

Bonne journée

Avatar
Geo
Re

L'enregistreur de macro étant toujours notre ami, surtout un jour de Noel :

Sub SuppLettrine()
Dim P As Paragraph
On Error Resume Next
For Each P In ActiveDocument.Paragraphs
P.DropCap.Position = wdDropNone
Next
On Error GoTo 0
End Sub

Supprime toute mise en forme de type lettrine, pas le texte lui-même.

--

A+
Avatar
Géo
Geo a écrit:
Re

L'enregistreur de macro étant toujours notre ami, surtout un jour de
Noel :


Sub SuppLettrine()
Dim P As Paragraph
On Error Resume Next
For Each P In ActiveDocument.Paragraphs
P.DropCap.Position = wdDropNone
Next
On Error GoTo 0
End Sub

Supprime toute mise en forme de type lettrine, pas le texte lui-même.



J'ai fait des tests avec tes solutions, elles fonctionnent tres bien.
La seule chose qui me chicane, c'est que je n'arrive pas a creer un
objet Range deconnecte.
Si je fait : (le code est ecrit avec les pieds, mais c'est pour le test)
'*************************************************************************
function test (dim mypage as range)as string

with mypage

Options.ReplaceSelection = True
i = 1
For Each MonImage In .InlineShapes
MonImage.Select
selection.TypeText (" [image " & i & "]")
i = i + 1
Next


' ----------

' traitement de mon objet Range

end with

end function
'*************************************************************************
J'ai reellement la modification dans la page word, on ne peut pas jouer
avec un objet Range en memoire ? que la modification se fasse sur
l'objet en memoire, mais pas sur la page. Je dois garder le texte tel quel.

Le but final est d'exporter le texte avec des tags que j'ai predefini
par avance , mais sans toucher au texte d'origine.

Géo

Avatar
Geo
Bonjour Géo


J'ai reellement la modification dans la page word, on ne peut pas
jouer avec un objet Range en memoire ? que la modification se fasse
sur
l'objet en memoire, mais pas sur la page. Je dois garder le texte tel
quel.

Le but final est d'exporter le texte avec des tags que j'ai predefini
par avance , mais sans toucher au texte d'origine.


Tel monsieur Jourdain, tu travailles en mémoire sans le savoir.
Tant que tu n'enregistres pas ton document, le texte d'origine est
inchangé.

--

A+

Avatar
Géo
Geo a écrit:
Bonjour Géo



J'ai reellement la modification dans la page word, on ne peut pas
jouer avec un objet Range en memoire ? que la modification se fasse
sur
l'objet en memoire, mais pas sur la page. Je dois garder le texte tel
quel.

Le but final est d'exporter le texte avec des tags que j'ai predefini
par avance , mais sans toucher au texte d'origine.



Tel monsieur Jourdain, tu travailles en mémoire sans le savoir.
Tant que tu n'enregistres pas ton document, le texte d'origine est
inchangé.



Oui, mais c'est pas tres ... elegant ... je pensais pour creer un objet
Range en memoire (completement deconnecte du texte de base) un oeu comme
un string en memoire ... dommage :-(

Encore merci pour ton aide !

Amicalement


Géo