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

Modifier les propriétés d'une image par VBA

6 réponses
Avatar
Gilbert
Bonjour,

J'insère depuis Access par automation une image dans un document Word avec
la commande
suivante :
Word_Application.Selection.InlineShapes.AddPicture FileName:=NomFichier,
LinkToFile:=False, SaveWithDocument:=True

Cette image est insérée correctement, mais je voudrais changer l'habillage
(par défaut 'Aligné sur le texte') en 'Derrière le texte'.

Merci pour vos suggestions.

Gilbert

6 réponses

Avatar
André
Bonjour,

Avec Word 2003, dans le menu Outils, Options et dans
l'onglet Edition, tu peux modifer l'habillage par défaut.
"Insérer/Coller des images en tant que:"

Salutations!
-----Message d'origine-----
Bonjour,

J'insère depuis Access par automation une image dans un
document Word avec

la commande
suivante :
Word_Application.Selection.InlineShapes.AddPicture
FileName:=NomFichier,

LinkToFile:úlse, SaveWithDocument:=True

Cette image est insérée correctement, mais je voudrais
changer l'habillage

(par défaut 'Aligné sur le texte') en 'Derrière le
texte'.


Merci pour vos suggestions.

Gilbert


.



Avatar
Gilbert
Merci de ta réponse, mais ça ne fonctionne qu'en insertion manuelle. Ca
n'est pas pris en compte pour une insertion par VBA.

Gilbert

"André" a écrit dans le message de
news:0dd401c5092e$ccd7af80$
Bonjour,

Avec Word 2003, dans le menu Outils, Options et dans
l'onglet Edition, tu peux modifer l'habillage par défaut.
"Insérer/Coller des images en tant que:"

Salutations!
-----Message d'origine-----
Bonjour,

J'insère depuis Access par automation une image dans un
document Word avec

la commande
suivante :
Word_Application.Selection.InlineShapes.AddPicture
FileName:=NomFichier,

LinkToFile:úlse, SaveWithDocument:=True

Cette image est insérée correctement, mais je voudrais
changer l'habillage

(par défaut 'Aligné sur le texte') en 'Derrière le
texte'.


Merci pour vos suggestions.

Gilbert


.



Avatar
Anacoluthe
Bonjour !

'Gilbert' nous a écrit ...
Merci de ta réponse, mais ça ne fonctionne qu'en insertion manuelle. Ca
n'est pas pris en compte pour une insertion par VBA.


André vous mettait pourtant sur la voie !

Si vous insérez une InlineShape c'est par définition un objet (image)
/aligné/ sur le texte !!! L'habillage ne concerne que les objets
hors-texte donc les Shapes. Votre code devait comporter plutôt
ActiveDocument.Shapes.AddPicture ...
ce que l'enregistreur de macro vous aurait donné en suivant
tout simplement le conseil d'André !
Notez qu'une InlineShape peut être transformée par vba en Shape
avec la méthode ConvertToShape.

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

Avatar
Gilbert
Bonjour,

J'avais essayé avec
Word_Application.Selection.Shapes.AddPicture FileName:=NomFichier,
LinkToFile:úlse, SaveWithDocument:=True
mais j'obtiens le message 438 'Propriété ou méthode non gérée par cet objet'

J'ai essayé aussi avec
Word_Application.Selection.InlineShapes.AddOLEObject
ClassType:="Paint.Picture", FileName:=NomFichier, LinkToFile:úlse,
DisplayAsIcon:úlse
mais dans ce cas, l'image n'est pas insérée mais son icône avec le nom du
fichier dessous (comme en affichage 'Miniature' dans l'explorateur)

Ca fonctionne en mettant les lignes suivantes dans une macro du doc Word et
en lançant la macro depuis Access
Sub test()
ActiveDocument.InlineShapes(1).Select
Selection.InlineShapes(1).ConvertToShape
Selection.ShapeRange.WrapFormat.Type = 5
End Sub

Par contre je ne comprend pas pourquoi en mettant les lignes suivantes (qui
font la même chose que la macro au-dessus) dans le module Access ça ne
fonctionne pas
Word_Application.Selection.InlineShapes(1).ConvertToShape
Word_Application.ShapeRange.WrapFormat.Type = 5


Si quelqu'un a une explication, je suis preneur.

Merci
Gilbert


"Anacoluthe" a écrit dans le message de
news:
Bonjour !

'Gilbert' nous a écrit ...
Merci de ta réponse, mais ça ne fonctionne qu'en insertion manuelle. Ca
n'est pas pris en compte pour une insertion par VBA.


André vous mettait pourtant sur la voie !

Si vous insérez une InlineShape c'est par définition un objet (image)
/aligné/ sur le texte !!! L'habillage ne concerne que les objets
hors-texte donc les Shapes. Votre code devait comporter plutôt
ActiveDocument.Shapes.AddPicture ...
ce que l'enregistreur de macro vous aurait donné en suivant
tout simplement le conseil d'André !
Notez qu'une InlineShape peut être transformée par vba en Shape
avec la méthode ConvertToShape.

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



Avatar
Jean-Guy Marcil
Gilbert was telling us:
Gilbert nous racontait que :

Bonjour,

J'avais essayé avec
Word_Application.Selection.Shapes.AddPicture FileName:=NomFichier,
LinkToFile:úlse, SaveWithDocument:=True
mais j'obtiens le message 438 'Propriété ou méthode non gérée par cet
objet'


Parce que Shapes n'est pas une méthode/propriété de l'objet Selection, mais
de Document.

Essaie:
Word_Application.TonObjetDocument.Shapes.AddPicture FileName:=NomFichier, _
LinkToFile:úlse, SaveWithDocument:=True, Anchor:=Selection.Range


En passant, quand on manipule Word à partir d'une autre application, et mème
en général. il vaut mieux éviter l'objet Selection et favoriser l'objet
Range.

Aussi, utilise

With Word_Application
.Shapes...
.AutreMethode...
End With

plutôt que

Word_Application.Shapes....
Word_Application.AutreMethode...

Le code est plus facile à lire et exécute plus rapidement.

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org

Avatar
Gilbert
Merci, je vais tester ça dès que possible.

"Jean-Guy Marcil" a écrit dans le message de
news:%
Gilbert was telling us:
Gilbert nous racontait que :

Bonjour,

J'avais essayé avec
Word_Application.Selection.Shapes.AddPicture FileName:=NomFichier,
LinkToFile:úlse, SaveWithDocument:=True
mais j'obtiens le message 438 'Propriété ou méthode non gérée par cet
objet'


Parce que Shapes n'est pas une méthode/propriété de l'objet Selection,
mais

de Document.

Essaie:
Word_Application.TonObjetDocument.Shapes.AddPicture FileName:=NomFichier,
_

LinkToFile:úlse, SaveWithDocument:=True, Anchor:=Selection.Range


En passant, quand on manipule Word à partir d'une autre application, et
mème

en général. il vaut mieux éviter l'objet Selection et favoriser l'objet
Range.

Aussi, utilise

With Word_Application
.Shapes...
.AutreMethode...
End With

plutôt que

Word_Application.Shapes....
Word_Application.AutreMethode...

Le code est plus facile à lire et exécute plus rapidement.

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org