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 :

Code pour insérer une image et changer ses dimensions


Sujet :

VBA Word

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Par défaut Code pour insérer une image et changer ses dimensions
    Bonjour,

    J'aimerai créer une macro qui permettrait d'insérer des images dans une page et que ces images soient redimensionnées. Pour le disposition des images je pense utiliser un tableau et les images viendraient dans les cases prévues. C'est pour le changement de dimensions des images que j'ai des problèmes. J'aimerai que les images fasses 8cm de large et 6cm de hauteur.
    Voici mon code de macro pour insérer une image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Macro()
    '
    ' Macro Macro
    '
        Selection.InlineShapes.AddPicture FileName:= _
            "C:\Documents and Settings\***\*****\****\photo.jpg", LinkToFile:=False, _
             SaveWithDocument:=True
    End Sub
    Merci beaucoup pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2011
    Messages : 17
    Par défaut
    Bonjour,

    Je suis loin d'être un pro du vba, mais essaie cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Selection.InlineShapes(1)
                .Width = MillimetersToPoints(80)
                .Height = MillimetersToPoints(60)
    End With
    le "1" correspondant numéro de l'image, si tu veux redimensionner la quatrième tu mets 4.

    Voili, voilou

    Happy_Diver
    Si vis pacem, para bellum

  3. #3
    Expert confirmé
    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 : 62
    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
    Par défaut
    Salut Ragain,

    Citation Envoyé par Ragain Voir le message
    Bonjour,

    J'aimerai créer une macro qui permettrait d'insérer des images dans une page et que ces images soient redimensionnées. Pour le disposition des images je pense utiliser un tableau et les images viendraient dans les cases prévues. C'est pour la changement de dimensions des images que j'ai des problèmes. J'aimerai que les images fasses 8cm de large et 6cm de hauteur.
    Voici mon code de macro pour insérer une image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Macro()
    '
    ' Macro Macro
    '
        Selection.InlineShapes.AddPicture FileName:= _
            "C:\Documents and Settings\***\*****\****\photo.jpg", LinkToFile:=False, _
             SaveWithDocument:=True
    End Sub
    Merci beaucoup pour votre aide.
    Désolé ma réponse d'hier soir n'a pas été prise en compte ==> je te la renvoie:
    Word ne sait pas gérer des dimensions réelles et a un très gros problème sur les tailles des objets. Les tailles qui tu indiques par l'interface ou en VBA ne correspondent pas à la réalité. Ce point a été vu comme un problème (important) de Word sur DVP.com. Prends un exemple :
    1. Ferme Word (s'il est déjà ouvert) et ouvre-le avec un nouveau document (comme ça personne ne pourra te reprocher d'avoir des scories de manipulation précédente)
    2. Dessine un cercle de 7 cm de diamètre, un rectangle de 8 cm x 5 cm avec l'interface
    3. Imprime-le et mesure (les valeurs sont fausses)

    La seule chose cohérente c'est que si tu fais une forme de 8 cm elle devrait faire le double de taille à l'impression de la même forme de 4 cm (oui, quand même). Mais le calcul de la déformation de Word / à la réalité dépend de bricoles comme la version, l'imprimante, les paramètres de Word...
    Rem: J'ai pris le cas des cm mais Word a le même problème en pouces, twips...

    @+

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2011
    Messages : 17
    Par défaut
    Bonjour,

    Je redimensionne des wmf de cette manière et après ta remarque, j'ai regardé de plus près et il y vrai que j'ai une variation de 1 à 3 mm avec la même image. Quand j'avais controlé la première fois, je n'avais pas été frappé par cet écart, mais surtout dans mon cas, cela m'a pas beaucoup d'importance.

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Par défaut
    Merci beaucoup Happy_diver et Sepia de vous pencher sur le problème.
    Sepia, que la taille d´impression ne corresponde pas à la taille souhaitée n´est pas un problème pour ce que je souhaite réaliser (mais je n´en reste pas moins surpris!). Je souhaite seulement que les images soient disposées correctement sur la page et que leurs tailles soient réduites.
    Sepia, merci pour le code, je l´ai essayé mais ca beug à partir de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        With Selection.InlineShapes(1)
    Dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Makro1()
    '
    ' Macro Macro
    '
        Selection.InlineShapes.AddPicture FileName:= _
            "C:\Dokumente und Einstellungen\All Users\***\photo.jpg", LinkToFile:=False, _
             SaveWithDocument:=True
        With Selection.InlineShapes(1)
                .Width = MillimetersToPoints(80)
                .Height = MillimetersToPoints(60)
    End With
    End Sub
    Merci beaucoup pour votre aide.

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Si tu as une erreur, il y a certainement un message avec l'erreur.

    Aurais-tu la raison donnée par Word ?
    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
    Membre émérite Avatar de Souriane
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2009
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2009
    Messages : 541
    Par défaut
    Bonjour,

    @Heureux-Oli, moi aussi ça me donnait un problème à la même ligne : "Le membre de la collection n'existe pas".

    Moi la méthode que j'utilise est celle-ci:

    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
    Sub Makro1()
    '
     
    Dim objDoc As Document, objShape As InlineShape
     
    Set objDoc = Application.Documents.Add
    Set objShape = Selection.InlineShapes.AddPicture(FileName:="C:\Dokumente und Einstellungen\All Users\***\photo.jpg", LinkToFile:=False, SaveWithDocument:=True)
    With objShape
        .LockAspectRatio = msoTrue
        .Height = .Height * 0.5
        .Width = .Width * 0.5
    End With
     
     
    End Sub
    Bonne chance!

    Souriane

Discussions similaires

  1. Réponses: 8
    Dernier message: 11/02/2008, 19h37
  2. [ImageMagick] Problème dans le code pour redimensionner une image
    Par pierrot10 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 08/06/2007, 14h06
  3. Réponses: 2
    Dernier message: 03/08/2006, 18h21
  4. Problème pour insérer une image
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 4
    Dernier message: 26/04/2006, 23h36
  5. [FTP] Code pour mettre une image en background
    Par Link14 dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2006, 21h10

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