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 modifier le path des images


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Macro pour modifier le path des images
    Bonjour,

    Je travaille sur Word 2010 et j'aimerai savoir s'il existe une macro permettant de modifier le path de toutes les images liées dans un document.
    Pour insérer des images je fais "Insérer > Images > Lier au fichier", chaque image a donc un chemin relatif. J'aimerai pouvoir modifier ce chemin d'un coup pour tous les fichiers.

    J'utilisais une macro qui faisait ça sous Word 2003 mais avec 2010, elle plante.

    Merci d'avance pour votre aide

    Pour info, voici la macro que j'utilisais sous 2003:

    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
    23
    24
    25
    26
    27
    28
    29
    Sub RelinkGraphics()
        On Error Resume Next
        If ActiveDocument.Path = "" Then
            MsgBox "Save your document in a folder of your choice, then try again.", , "Find graphics and copy them to folder where document is stored"
            Exit Sub
        End If
     
        For Each myShape In ActiveDocument.InlineShapes
            If myShape.LinkFormat.Type <> wdLinkTypePicture Then GoTo EndOfMyShape
            'If myShape.LinkFormat.SourcePath = ActiveDocument.Path Then GoTo EndOfMyShape
     
            MyFileWas = Dir(myShape.LinkFormat.SourceFullName)
            myfileisnow = "..\Pictures\" & myShape.LinkFormat.SourceName
     
            If myfileisnow <> "" Then
                myShape.LinkFormat.SourceFullName = myfileisnow
                myShape.LinkFormat.Update
            ElseIf MyFileWas <> "" Then
                FileCopy myShape.LinkFormat.SourceFullName, ActiveDocument.Path & Application.PathSeparator & myShape.LinkFormat.SourceName
                myShape.LinkFormat.SourceFullName = ActiveDocument.Path & Application.PathSeparator & myShape.LinkFormat.SourceName
                myShape.LinkFormat.Update
            Else
                MsgBox "Couldn't locate " & myShape.LinkFormat.SourceFullName
            End If
     
    EndOfMyShape:
            ActiveDocument.UndoClear
        Next myShape
    End Sub

  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,

    J'ai déjà vu ce code.

    un problème est la non déclaration des différentes variables dans un code.

    Essaie ce petit bout de code pour voir ?

    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
     
    Sub cheminImage()
    On Error Resume Next
    Dim oSH As InlineShape
    Debug.Print ActiveDocument.InlineShapes.Count
     
    For Each oSH In ActiveDocument.InlineShapes
    If oSH.LinkFormat.Type = wdLinkTypePicture Then
    Debug.Print oSH.LinkFormat.SourceName
    oSH.LinkFormat.SourceFullName = ActiveDocument.Path & "\images\" & oSH.LinkFormat.SourceName
     
    End If
    Next oSH
     
     
    End Sub

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci de votre réponse
    Malheureusement, cette macro fait planter Word au bout d'un moment.
    Pour info je travaille sous Word 2010 / document en mode de compatibilité 2003/2007 (.doc) et mon document fait plus de 1000 pages!
    Cette macro passe très bien sous 2003 avec le même document.

    Une petite idée?

  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,

    Je n'ai pas 2010 au boulot.
    Comme je n'utilise pas de variables exotiques, je pensais qu'il naurait pas de problème.

    Essaie sur un document de taille un peu plus petite ?

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Quand le document est plus petit, ça ne plante plus mais le path n'est plus bon.
    Il me faut un chemin relatif "../Pictures" et il me le met en chemin absolu.

Discussions similaires

  1. Réponses: 11
    Dernier message: 11/04/2015, 12h33
  2. [XL-2007] Macro pour modifier une image
    Par yvespi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/12/2011, 14h00
  3. [Débutant] boucle pour modifier et enregistrer des images
    Par Grichka146 dans le forum Images
    Réponses: 2
    Dernier message: 30/08/2011, 17h02
  4. Modifier le path des images dans jquery-ui.css
    Par bertrand0756 dans le forum jQuery
    Réponses: 1
    Dernier message: 13/06/2011, 17h47
  5. pb pour modifier la luminositée des couleurs
    Par mathieutlse dans le forum Langage
    Réponses: 2
    Dernier message: 08/01/2003, 14h45

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