IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Macro pour appliquer une mise en forme aux images [WD-2013]


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Femme Profil pro
    ingénieur BTP
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur BTP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Macro pour appliquer une mise en forme aux images
    Bonjour,

    Je souhaiterais savoir si l'on peut créer une macro qui applique une mise en forme particulière à toutes les images de mon document Word.
    Mise en forme voulue : encadré gris clair avec arrondi dans les angles supérieur droit et inférieur gauche.
    Etant novice en programmation, j'ai quand même réussi à créer une macro (merci internet !) qui sélectionne la totalité des images de mon fichier Word et qui leur applique une bordure grise. Par contre je sèche pour les angles ...
    Quelqu'un aurait-il une idée?
    Voici mon code actuel :

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub mef_images()
    Dim image As InlineShape
    For Each image In ActiveDocument.InlineShapes
            With image
                With .Borders(wdBorderLeft)
                    .LineStyle = wdLineStyleSingle
                    .LineWidth = wdLineWidth100pt
                    .Color = RGB(217, 217, 217)
                End With
            End With
    Next
    End Sub

    Merci d'avance!

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 056
    Points : 9 483
    Points
    9 483
    Par défaut
    hello,
    un truc facile à faire c'est de sélectionner une image qui a le format désiré et de copier le format (l'image peut être la première du document ou se trouver dans un autre document word), puis d'appliquer le format sur toutes les autres images du document.
    Voici un code exemple qui prend le format de la première image du document et qui le copie sur toutes les autres images :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub mef_images()
    Dim image As InlineShape
    ActiveDocument.InlineShapes(1).Select
    Selection.CopyFormat
    For Each image In ActiveDocument.InlineShapes
    With image
    image.Select
    Selection.PasteFormat
    End With
    Next
    End Sub
    voici ce que cela donne :
    1 - Avant l'exécution de la macro :
    Nom : Word-AvantMacro.png
Affichages : 1072
Taille : 63,0 Ko

    2 - Après
    Nom : Word-AprèsMacro.png
Affichages : 1084
Taille : 54,5 Ko

    Ami calmant, J.P

  3. #3
    Candidat au Club
    Femme Profil pro
    ingénieur BTP
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur BTP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour JP,

    Effectivement c'est une solution assez simple. J'ai testé ton code et il marche impec. Merci !
    Par contre, je ne sais pas créer la forme que je souhaite (arrondir les angles haut droit et bas gauche) sans passer par une forme et un remplissage. Faire cette manip sur toute les images est trop fastidieuse.
    Je me demandais donc s'il n'y avait pas une commande pour arrondir l'angle que l'on souhaite ?
    Au pire je me rabattrais sur les angles arrondis haut gauche et bas droit (mise en forme qui existe!!).
    Et dernière question, peut-on appliquer la mise en forme sur les images de tout le document sauf de la première page?

    Merci encore!
    Aka

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 056
    Points : 9 483
    Points
    9 483
    Par défaut
    hello,
    je ne sais pas comment on arrondit un seul coin.
    Pour la deuxième question tu peux faire comme ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub mef_images()
    Dim image As InlineShape
    ActiveDocument.InlineShapes(1).Select
    Selection.CopyFormat
    For Each image In ActiveDocument.InlineShapes
    With image
    image.Select
    If Selection.Information(wdActiveEndPageNumber) > 1 Then
    Selection.PasteFormat
    End If
    End With
    Next
    End Sub
    Si l'objet sélectionné se trouve sur une page autre que la première , on applique le format.
    N'oublie pas de mettre la discussion comme résolue si c'est le cas et de noter les messages qui t'ont semblé utiles (pouce vers le haut) et ceux qui t'on fait perdre ton temps (pouce vers le bas).

    Ami calmant, J.P

  5. #5
    Candidat au Club
    Femme Profil pro
    ingénieur BTP
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur BTP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Ca fonctionne impec !!
    Super !! Merci bien JP !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Appliquer une mise en forme conditionnelle sur une colonne en fonction du contenu d'une autre
    Par pascale93200 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/09/2015, 11h00
  2. Macro pour copier sans mise en forme
    Par oligig dans le forum VBA Word
    Réponses: 11
    Dernier message: 07/12/2011, 22h33
  3. Comment appliquer une mise en forme à de nouvelles feuilles?
    Par jacksparot dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/04/2011, 20h09
  4. [WD15] Champ approprié pour conserver une mise en forme
    Par buzz68180 dans le forum WinDev
    Réponses: 4
    Dernier message: 16/02/2011, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo