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 : encadrer une image sélectionnée


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut MACRO : encadrer une image sélectionnée
    Bonjour,

    Pour la rédaction de documents comprenant de nombreuses images, je cherche à créer une macro dans WORD 2007 pour mettre un cadre de couleur autour de chaque image sélectionnée (cela réduirait significativement les manips et permettrait de travailler à plusieurs de façon homogène).
    Comment faut-il procéder (sachant je ne connais pas le code VB) ?
    Pour faire succinct, je n’explique pas ici toutes les manips réalisées avec l’enregistreur de macro pour y parvenir…
    Merci d’avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Peut-être comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub entourerImage()
    Dim myIs As InlineShape
     
    Set myIs = Selection.InlineShapes(1)
    With myIs
     
        .Borders(wdBorderBottom).LineWidth = wdLineWidth150pt
        .Borders(wdBorderBottom).Color = wdColorDarkRed
     
     
        '------
        .Borders(wdBorderLeft).LineWidth = wdLineWidth150pt
        .Borders(wdBorderLeft).Color = wdColorDarkRed
        '------
        .Borders(wdBorderRight).LineWidth = wdLineWidth150pt
        .Borders(wdBorderRight).Color = wdColorDarkRed
        '------
        .Borders(wdBorderTop).LineWidth = wdLineWidth150pt
        .Borders(wdBorderTop).Color = wdColorDarkRed
    End With
    Set myIs = Nothing
    End Sub
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [WD-2007] MACRO : encadrer une image sélectionnée
    Bonjour et merci.

    - A l'éxécution du code proposé, voici le message d'erreur :

    " Erreur d'exécution '5843'
    L'un des arguments est hors limites. "

    En faisant le déboggage, l'erreur apparaît dès la première ligne de code ( .Borders(wdBorderBottom).LineWidth = wdLineWidth150pt)

    - Cependant, pour préciser le besoin :
    1/ l'utilisateur sélectionne une image
    2/ CTRL+E (pour centrer l'image)
    3/ clic droit 'Format de l'image'
    4/ clic sur item 'Couleur du trait'
    5/ clic sur puce 'Trait plein'
    6/ clic sur bouton 'Couleur'
    7/ clic sur 'Autres couleurs'
    8/ clic sur onglet 'Personnalisées' de la boîte de dialogue 'Couleurs'
    9/ indication sur champ 'Vert' : 32
    10/ indication sur champ 'Bleu' : 96
    11/ clic sur bouton 'OK'
    12/ clic sur bouton 'Fermer'
    13/ appui sur la touche 'Entrée' (passage à la ligne suivante)

    la macro devrait réaliser les étapes 2/ à 13/

    Merci.

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    chez moi, la macro fonctionne.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Je ne connais pas VBA et ne suis pas développeur.
    L'aide de Word m'a paru très peu satisfaisante pour l'élaboration de macros (ou alors je ne suis pas allé au bon endroit !).

    Savez-vous s'il existe un site qui fournit les correspondances entre chaque fonctionnalité de WORD et le code VBA ?

    Avec une liste de correspondances et des exemples de bout de code, je pourrais peut-être me débrouiller en tâtonnant.

    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Je pense pas que ce soit si simple.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    A l'origine, l'enregistreur n'a pas fonctionné pour une manip qui semble plutôt simple de prime abord.

    Au début, en consultant l'aide de WORD, j'ai identifié qu'à l'enregistrement d'une macro, la sélection de texte doit être faite au clavier.
    J'ai donc transposé le principe à la sélection d'image. Mais cela n'a rien donné, la macro reste vide de code.

    Vous paraît-il normal que pour ce besoin aussi simple la création de la macro via l'enregistreur ne fonctionne pas correctement ?

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    L'enristreur de macro ne fonctionne pas pour les objets graphiques et pour les manipulations à la souris.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #9
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut DSI0499,

    mon dieu que c'est compliqué alors qu'il suffit de demander à Word de faire le boulot .

    Voilà le truc, pour faire les étapes de 2 à 13
    Tu sélectionnes une image, tu fais la manip, puis tu sélectionnes une deuxième image et tu fais <CTRL>+Y. Puis après... heu c'est tout. La commande <CTRL>+Y refait la dernière commande de Word (lorsqu'il peut). En termes de comparaison en temps, je crois avoir mis 17 sec puis 2 sec par image (j'ai triché, j'ai fait une recherche d'image) et je l'ai fait une sur 2. C'est vraiment du Word, très boeuf mais très efficace.

    Maintenant si tu veux faire de l'étape 1 à 13, voici le truc
    Tu commences par te créer un style, mesImages par exemple, qui est un style de caractères avec une bordure (rouge par exemple )
    Puisque tu as lu le tutoriel sur la recherche et le remplacement dans Word, si tu sais effectuer un rechercher/remplacer global. Pour une image, tu utilises "^g", donc tu remplaces toutes tes images par... elles-mêmes (i.e. ce que tu cherches "^&") en leur ajoutant le style "mesImages", tu lances "Rempalcer Tout". Puis après... heu c'est tout. Je n'ai pas compté le gain de temps par rapport à une macro mais la dernière fois, c'était de l'ordre de 2700 pour le même type de remplacement (temps d'écriture de la macro comprise) sachant que le gain est encore plus important si tu as beaucoup d'images car le VBA est assez gourmand en ressources et que le rechercher/remplacer est une commande native optimisée.

    Voilà si tu veux plus d'explications n'hésite pas.

    @+

Discussions similaires

  1. [XL-2003] Macro pour une image
    Par m0urad dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/11/2009, 09h09
  2. Encadrer une image
    Par atm0sfe4r dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 30/07/2009, 09h32
  3. Encadrer une image dans le code latex sans marge
    Par Ladgalen dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 05/04/2009, 17h48
  4. [POO] Récupérer une image sélectionnée sous Firefox
    Par Canopus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/01/2009, 22h34
  5. Prévisualisation d'une image sélectionnée sur disque dur
    Par ero-sennin dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 02/08/2008, 23h54

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