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

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

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

4 réponses

Avatar
Anacoluthe
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

Avatar
Fred
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" a écrit dans le message de
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



Avatar
Anacoluthe
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

Avatar
Fred
C'est parfiat, merci et bonne journée,

FRED.


"Anacoluthe" a écrit dans le message de
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