Définir une image "derrière le texte" en VBA

Le
Fred
Re bonjour,

Je me permets de poser la question à nouveau:

J'insère une image à l'aide de l'enregistreur de macro.
Je souhaiterais que celle-ci soit "derrère le texte" et aussi définir sa
taille, or, durant l'enregistrement, ces options ne sont pas disponibles.
Quelqu'un pourrait-il m'indiquer les paramètres en VBA (je me perds dans
l'explorateur d'objet !!!).

Merci,

FRED.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Anacoluthe
Le #1695587
Bonjour !

'Fred' nous a écrit ...
J'insère une image à l'aide de l'enregistreur de macro.
Je souhaiterais que celle-ci soit "derrère le texte" et aussi définir sa
taille, or, durant l'enregistrement, ces options ne sont pas disponibles.
Quelqu'un pourrait-il m'indiquer les paramètres en VBA (je me perds dans
l'explorateur d'objet !!!).


Dans Word il y a 2 types d'objets graphiques (images pour simplifier)
- les InlineShapes alignées sur le texte
- les Shapes hors-texte

Il est probable que vous enregistrez une macro qui insère une InlineShape
puis que vous changez l'habillage derrière le texte pour faire une Shape

L'enregistreur est incapable de faire cette opération assez complexe
de conversion bien qu'il existe en VBA une fonction pour le faire.

Vous devez /programmer/ l'insertion de votre image shape.

Si vous insistez pour utiliser l'enregistreur allez d'abord dans
Outils / Options / Edition / Insérer-coller images : Derrière le texte
pour que votre enregistrement macro d'insertion d'image se fasse en
Shape par défaut.

Est-ce un peu plus clair ?

Anacoluthe
« Vous prendrez-vous toujours au piège des images? »
- Alphonse de LAMARTINE

Fred
Le #1695579
Oui, merci, cela s'éclaircit !

Cela dit, sans vouloir paraître exigeant, je préfèrerai vraiment connaître
le code...
J'ai tenté d'utiliser "PictureWrapType = wdWrapMergeBehind" seul mais je
n'arrive à rien...


FRED.

"Anacoluthe" news:
Bonjour !

'Fred' nous a écrit ...
J'insère une image à l'aide de l'enregistreur de macro.
Je souhaiterais que celle-ci soit "derrère le texte" et aussi définir sa
taille, or, durant l'enregistrement, ces options ne sont pas disponibles.
Quelqu'un pourrait-il m'indiquer les paramètres en VBA (je me perds dans
l'explorateur d'objet !!!).


Dans Word il y a 2 types d'objets graphiques (images pour simplifier)
- les InlineShapes alignées sur le texte
- les Shapes hors-texte

Il est probable que vous enregistrez une macro qui insère une InlineShape
puis que vous changez l'habillage derrière le texte pour faire une Shape

L'enregistreur est incapable de faire cette opération assez complexe
de conversion bien qu'il existe en VBA une fonction pour le faire.

Vous devez /programmer/ l'insertion de votre image shape.

Si vous insistez pour utiliser l'enregistreur allez d'abord dans
Outils / Options / Edition / Insérer-coller images : Derrière le texte
pour que votre enregistrement macro d'insertion d'image se fasse en
Shape par défaut.

Est-ce un peu plus clair ?

Anacoluthe
« Vous prendrez-vous toujours au piège des images? »
- Alphonse de LAMARTINE



Anacoluthe
Le #1690992
Bonjour !

'Fred' nous a écrit ...
Cela dit, sans vouloir paraître exigeant, je préfèrerai vraiment
connaître le code...
J'ai tenté d'utiliser "PictureWrapType = wdWrapMergeBehind" seul mais je
n'arrive à rien...


Cette macro insère une image centrée derrière le texte de la première page
du document actif :

Sub ImageDerriere()
Dim monFichier As String
Dim monImage As Shape
monFichier = "C:Mes imagesPhoto1.jpg"
Set monImage = ActiveDocument.Shapes.AddPicture(monFichier)
With monImage
.WrapFormat.Type = 3
.ZOrder 5
.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
.RelativeVerticalPosition = wdRelativeVerticalPositionPage
.Left = wdShapeCenter
.Top = wdShapeCenter
End With
End Sub

Cette macro ajoute directement une Shape donc pas besoin de modifier
le mode d'insertion par défaut des images au niveau des options.

Anacoluthe
« Vous prendrez-vous toujours au piège des images? »
- Alphonse de LAMARTINE

Fred
Le #1690794
C'est parfiat, merci et bonne journée,

FRED.


"Anacoluthe" news:
Bonjour !

'Fred' nous a écrit ...
Cela dit, sans vouloir paraître exigeant, je préfèrerai vraiment
connaître le code...
J'ai tenté d'utiliser "PictureWrapType = wdWrapMergeBehind" seul mais je
n'arrive à rien...


Cette macro insère une image centrée derrière le texte de la première page
du document actif :

Sub ImageDerriere()
Dim monFichier As String
Dim monImage As Shape
monFichier = "C:Mes imagesPhoto1.jpg"
Set monImage = ActiveDocument.Shapes.AddPicture(monFichier)
With monImage
.WrapFormat.Type = 3
.ZOrder 5
.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
.RelativeVerticalPosition = wdRelativeVerticalPositionPage
.Left = wdShapeCenter
.Top = wdShapeCenter
End With
End Sub

Cette macro ajoute directement une Shape donc pas besoin de modifier
le mode d'insertion par défaut des images au niveau des options.

Anacoluthe
« Vous prendrez-vous toujours au piège des images? »
- Alphonse de LAMARTINE





Publicité
Poster une réponse
Anonyme