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

Word Discussion :

[Word VBA] définition zone collage


Sujet :

Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [Word VBA] définition zone collage
    Bonjour,

    Je travaille sur une macro CATIA qui permet d'extraire des données de CATIA pour les intégrer dans Word.

    Dans ce cadre là, je suis amené à insérer une image issue de CATIA dans un doc Word. Je souhaite pouvoir permettre à l'utilisateur de définir une zone de collage de cette image.

    A l'heure actuelle, je sais copier une image dans un Word mais je ne sais pas comment faire pour permettre à l'utilisateur de définir la zone de collage (un peu comme sur Excel où on insérerai une image dans une cellule lambda sélectionnée par l’utilisateur grâce à une inputbox qui s'affiche à l'ouverture du doc).

    Qq un aurait il un code ou bout de code qui permettrait d'insérer une image dans une zone définie par l'utilisateur lui-même ?

    Merci pour l'aide,
    MC

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Solution à essayer. Le principe est de définir N signets qui accueilleront les images et de choisir le signet d'insertion via un Userform. Bien entendu le choix de l'image pourrait être également réalisé depuis le Userform.


    Dans un module du document :

    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
    30
    31
     
    Option Explicit
     
    Public SignetEnCours As Bookmark
    Public MonRepertoire As String
    Public MonImage As String
     
    Sub TestAjouterUneImage()
     
        MonRepertoire = "XXXX"
        MonImage = "YYYY.JPG"
     
        With UserFormInsererImage
             For Each SignetEnCours In ActiveDocument.Bookmarks
                 .ListBoxSignetsImages.AddItem SignetEnCours.Name
             Next SignetEnCours
             .Show
        End With
     
    End Sub
     
     
    Sub AjouterUneImage(ByVal NomDuSignetImage As String, ByVal RepertoireImage As String, ByVal NomDeLIMage As String)
     
      For Each SignetEnCours In ActiveDocument.Bookmarks
          If SignetEnCours.Name = NomDuSignetImage Then
             SignetEnCours.Range.InlineShapes.AddPicture FileName:=RepertoireImage & "\" & NomDeLIMage, LinkToFile:=False, SaveWithDocument:=True
          End If
     Next SignetEnCours
     
    End Sub

    Dans le userform comprenant un ListBox et un CommandButton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Option Explicit
     
    Private Sub BoutonInsererImage_Click()
     
            AjouterUneImage ListBoxSignetsImages, MonRepertoire, MonImage
     
    End Sub
    Pièce jointe 227570

    Cordialement.

  3. #3
    Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Hello, désolé pour le retard de réponse.

    Merci pour ton aide. C'est une bonne solution alternative à ce que je souhaitais à ceci près qu'elle nécessite pour l'utilisateur de sélectionner le signet en question et surtout de connaitre ce qui se cache derrière l’appellation dudit signet (position sur la feuille). Ceci dit, je vais essayer de m'en inspirer.

    Merci, A+
    MC

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Courtoim Voir le message
    C'est une bonne solution alternative à ce que je souhaitais à ceci près qu'elle nécessite pour l'utilisateur de sélectionner le signet en question et surtout de connaitre ce qui se cache derrière l’appellation dudit signet (position sur la feuille).
    Bonjour,

    Merci d'avoir répondu.

    Dans votre message d'origine, vous indiquiez qu'il fallait permettre à l'utilisateur de définir la zone de collage.

    A l'heure actuelle, je sais copier une image dans un Word mais je ne sais pas comment faire pour permettre à l'utilisateur de définir la zone de collage (un peu comme sur Excel où on insérerai une image dans une cellule lambda sélectionnée par l’utilisateur grâce à une inputbox qui s'affiche à l'ouverture du doc).
    Si l'utilisateur insère un signet dans le document et lui donne un nom explicite, il pourra positionner correctement les images avec la macro dans la foulée. Ce n'est pas compliqué.

    Cordialement.

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

Discussions similaires

  1. Copier une ligne sous Word - VBA
    Par aaliyan dans le forum VBA Word
    Réponses: 7
    Dernier message: 13/04/2007, 17h47
  2. Sauvagarde nom proposé par défaut Word VBA
    Par snwotigers dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/10/2006, 21h12
  3. [Word VBA] numéro de page section
    Par dahu29 dans le forum VBA Word
    Réponses: 4
    Dernier message: 23/08/2006, 10h51
  4. [VBA-A] Zone Texte GotoControl
    Par microman dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/05/2006, 17h31
  5. [VBA-A]zone de liste
    Par gniark dans le forum VBA Access
    Réponses: 11
    Dernier message: 24/04/2006, 13h05

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