OVH Cloud OVH Cloud

Satanée macro !

29 réponses
Avatar
VarioFlux
Bonjour,

J'ai un doc que je modifie souvent, c'est à dire que j'insère
systématiquement une photo (toujours différente), un nom et une date...
Je modifie la taille de la photo en la sélectionnant, puis click
droit/format de l'image, ensuite onglet "taille" je la ramène à 55 %,
ensuite onglet "habillage" je sélectionne "derrière le texte" puis
avancé, puis je modifie son emplacement dans la page, je décoche
"déplacer avec le texte" et je coche "ancrer", puis "ok" 2 fois !
Ensuite je change un nom et une date dans une zone texte...

J'ai cherché à en faire une macro, je n'ai jamais trouvé !
C'est possible à faire ?
Passke c'est gonflant de refaire systématique cette même manip : c'est
pour des diplômes que je remet à mes clients donc je le fait plusieurs
centaines de fois par an !

--
VarioFlux
http://www.educador.fr
http://www.dressage-chien.com
Centre d'éducation canine sur la Côte d'Azur

10 réponses

1 2 3
Avatar
Clément Marcotte
Bonjour,

Là:

http://office.microsoft.com/fr-ca/templates/CT010872361036.aspx


"Serge" a écrit dans le message de news:
43ecea1a$0$1150$
Bonjour,

Le modèle "diplôme" existait d'ailleurs sous Word 97....

Sais pas s'il a été continué dans les autres versions....

Serge

"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

Pour rester en relativement bon(s) terme(s) (pas envie de chercher si
c'est singulier ou pluriel) avec les AMIS.

Faire un modèle diplome.dot, avec le cadre d'image et la zone de texte à
la bonne taille

Ensuite créer un nouveau document au besoin, à partir du modèle.

Insérer la nouvelle image et le bon texte.


"VarioFlux" a écrit dans le message de news:

Bonjour,

J'ai un doc que je modifie souvent, c'est à dire que j'insère
systématiquement une photo (toujours différente), un nom et une date...
Je modifie la taille de la photo en la sélectionnant, puis click
droit/format de l'image, ensuite onglet "taille" je la ramène à 55 %,
ensuite onglet "habillage" je sélectionne "derrière le texte" puis
avancé, puis je modifie son emplacement dans la page, je décoche
"déplacer avec le texte" et je coche "ancrer", puis "ok" 2 fois !
Ensuite je change un nom et une date dans une zone texte...

J'ai cherché à en faire une macro, je n'ai jamais trouvé !
C'est possible à faire ?
Passke c'est gonflant de refaire systématique cette même manip : c'est
pour des diplômes que je remet à mes clients donc je le fait plusieurs
centaines de fois par an !

--
VarioFlux
http://www.educador.fr
http://www.dressage-chien.com
Centre d'éducation canine sur la Côte d'Azur











Avatar
Circé
Anacoluthe a exprimé avec précision :

Imagine que VarioFlux doive répéter cette manip sur des centaines
de documents DÉJÀ EXISTANTS hein z'avez bonne mine de lui dire
maintenant qu'il aurait dû s'y prendre autrement et sans macro
superfétatoire ! :-))


Ouais, ben, il a jamais dit ça VarioFlux... Je crois bien que là, va
falloir rendre votre carte d'AMIS... périmée à tout jamais !!! :D

Circé

Anacoluthe
« Écrire est le dernier des métiers manuels... »
- Michel SERRES


Avatar
Anacoluthe
Bonjour !

'Circé' nous a écrit ...
Ouais, ben, il a jamais dit ça VarioFlux... Je crois bien que là, va
falloir rendre votre carte d'AMIS... périmée à tout jamais !!! :D


:-D )))))))

OK. Je me suis laissé dire qu'on pouvait récupérer des points
et sa carte avec des stages...... ;-)

A+
A~

Avatar
VarioFlux
Il se trouve que Anacoluthe a formulé :
Oui c'est très possible et sans problème
... mais pas avec l'enregistreur de macro !!
Si macro il y a, il vous faut l' /écrire/ cette macro
Pourquoi ?
Parce que vous changez d'objet graphique en cours de macro !
Vous passez d'une InlineShape (image alignée in-texte) à
une Shape (image hors-texte). L'enregistreur n'est pas capable
d'enregistrer ce tour de passe-passe de l'habillage. Mais
vous pouvez le programmer sans peine avec la méthode ConvertToShape.
La suite est plus simple.


Bonjour et merci,

Bon, j'ai bien compris d'éviter d'utiliser la souris mais plutôt le
clavier... Donc pour redimensionner la photo à 55%, ça roule...

mais la suite me parait plus obscure : dès que je lance l'enregistreur
de macros, comme par hasard, la rubrique habillage du menu format de
l'image devient innaccessible... Comment contourner ? J'ai cheché
"ConvertToShape" dans l'aide WOrd, mais rien n'y fait...

Au fait : Office Word 2003 SP2
:-)

--
VarioFlux
http://www.educador.fr
http://www.dressage-chien.com
Centre d'éducation canine sur la Côte d'Azur

Avatar
Circé
Bonjour,

Pourquoi ne veux-tu pas utiliser la solution de Clément sans macro,
beaucoup plus simple...

La macro est totalement inutile !!

Circé

VarioFlux avait soumis l'idée :
Il se trouve que Anacoluthe a formulé :
Oui c'est très possible et sans problème
... mais pas avec l'enregistreur de macro !!
Si macro il y a, il vous faut l' /écrire/ cette macro
Pourquoi ?
Parce que vous changez d'objet graphique en cours de macro !
Vous passez d'une InlineShape (image alignée in-texte) à
une Shape (image hors-texte). L'enregistreur n'est pas capable
d'enregistrer ce tour de passe-passe de l'habillage. Mais
vous pouvez le programmer sans peine avec la méthode
ConvertToShape.
La suite est plus simple.


Bonjour et merci,

Bon, j'ai bien compris d'éviter d'utiliser la souris mais plutôt le
clavier... Donc pour redimensionner la photo à 55%, ça roule...

mais la suite me parait plus obscure : dès que je lance
l'enregistreur de macros, comme par hasard, la rubrique habillage du
menu format de l'image devient innaccessible... Comment contourner ?
J'ai cheché "ConvertToShape" dans l'aide WOrd, mais rien n'y fait...

Au fait : Office Word 2003 SP2
:-)



Avatar
Geo

On t'a explqiué que le modèle de document serait plus simple, mais puis
que tu persistes :

Dim s As Shape
Dim i As InlineShape

Set i = Selection.InlineShapes.AddPicture(FileName:= etc )
i.LockAspectRatio = msoTrue
i.ScaleHeight = 55
i.ScaleWidth = 55
Set s = i.ConvertToShape

With s
.RelativeHorizontalPosition = wdRelativeHorizontalPositionColumn
.RelativeVerticalPosition = wdRelativeVerticalPositionParagraph
.Left = CentimetersToPoints(xxx)
.Top = CentimetersToPoints(xxxxx)
End With

Ca devrait suffire, mais j'ai gardé tous les autres paramètres générés
par l'enregistreur de macros, on ne sait jamais et ça justifie les
heures que j'ai passées à trouver ça.


--
A+
Avatar
Clément Marcotte
Même que le modèle "tout fait" est disponible sur le site Office.

"Circé" a écrit dans le message de news:

Bonjour,

Pourquoi ne veux-tu pas utiliser la solution de Clément sans macro,
beaucoup plus simple...

La macro est totalement inutile !!

Circé

VarioFlux avait soumis l'idée :
Il se trouve que Anacoluthe a formulé :
Oui c'est très possible et sans problème
... mais pas avec l'enregistreur de macro !!
Si macro il y a, il vous faut l' /écrire/ cette macro
Pourquoi ?
Parce que vous changez d'objet graphique en cours de macro !
Vous passez d'une InlineShape (image alignée in-texte) à
une Shape (image hors-texte). L'enregistreur n'est pas capable
d'enregistrer ce tour de passe-passe de l'habillage. Mais
vous pouvez le programmer sans peine avec la méthode ConvertToShape.
La suite est plus simple.


Bonjour et merci,

Bon, j'ai bien compris d'éviter d'utiliser la souris mais plutôt le
clavier... Donc pour redimensionner la photo à 55%, ça roule...

mais la suite me parait plus obscure : dès que je lance l'enregistreur de
macros, comme par hasard, la rubrique habillage du menu format de l'image
devient innaccessible... Comment contourner ? J'ai cheché
"ConvertToShape" dans l'aide WOrd, mais rien n'y fait...

Au fait : Office Word 2003 SP2
:-)







Avatar
VarioFlux
Le 11/02/2006, Geo a supposé :

On t'a explqiué que le modèle de document serait plus simple, mais puis que
tu persistes :

Dim s As Shape
Dim i As InlineShape

Set i = Selection.InlineShapes.AddPicture(FileName:= etc )
i.LockAspectRatio = msoTrue
i.ScaleHeight = 55
i.ScaleWidth = 55
Set s = i.ConvertToShape

With s
.RelativeHorizontalPosition = wdRelativeHorizontalPositionColumn
.RelativeVerticalPosition = wdRelativeVerticalPositionParagraph
.Left = CentimetersToPoints(xxx)
.Top = CentimetersToPoints(xxxxx)
End With

Ca devrait suffire, mais j'ai gardé tous les autres paramètres générés par
l'enregistreur de macros, on ne sait jamais et ça justifie les heures que
j'ai passées à trouver ça.


Bon, je vois avec un certain plaisir que vous êtes à fond dans votre
truc... Comme technicien j'apprécie, mais comme newbie de la macro, je
pige rien, sois c'est incomplet, sois je suis neuneu, ce qui est
possible, après tout ! mdr

--
VarioFlux
http://www.educador.fr
http://www.dressage-chien.com
Centre d'éducation canine sur la Côte d'Azur

Avatar
Geo
Re

Je la refais avec le son.
Anacoluthe vous a expliqué que lorsqu'on insère l'image c'est une
InlineShape, mais il faut la transformer en Shape pour la placer, on a
donc besoin de déclarer deux objets :

Dim s As Shape
Dim i As InlineShape



On place la photo et on lui donne le nom d'objet i, comme InlineShape.
Set i = Selection.InlineShapes.AddPicture(FileName:= etc )



on change ses dimensions, mais ça vous l'aviez trouvé.
i.LockAspectRatio = msoTrue
i.ScaleHeight = 55
i.ScaleWidth = 55



La fameuse conversion, l'objet i est transformé en Shape qui a pour
identifiant s.
Set s = i.ConvertToShape



On travaille donc désormais avec s pour le placer au bon endroit

With s
.RelativeHorizontalPosition = wdRelativeHorizontalPositionColumn
.RelativeVerticalPosition = wdRelativeVerticalPositionParagraph
.Left = CentimetersToPoints(xxx)
.Top = CentimetersToPoints(xxxxx)
End With



Pour comprendre le détail, il faut utiliser la touche F1 sans
modération.
Bon, alors le modèle ? hum ? on y revient ?

--
A+


Avatar
Circé
VarioFlux a exprimé avec précision :

je pige rien, sois c'est incomplet, sois je suis neuneu, ce qui est
possible, après tout ! mdr



No comment...

C

1 2 3