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 :

Comment inserer automatiquement des images dans un tableau word


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Comment inserer automatiquement des images dans un tableau word
    Bonjour,

    je cherche une aide concernant une des mes difficultés. Je dois régulièrement créer des tableaux avec 2 colonnes sous word 2003.

    Sur la colonne de gauche j'y ajoute un commentaire, puis sur le colonne de droite une image au format jpg. (parfois mon tableau comporte 500 lignes).

    Dans un répertoire défini par avance, mes images sont classés par ordre 001xxx.jpg, 002xxx.jpg, 003xxx.jpg etc.

    Comment, à l'aide d'une macro ou autre, récupérer l'image 001 puis la coller dans la cellule droite de la ligne 1, puis récupérer l'image 002 puis la coller dans la cellule droite de la ligne 2 etc...

    Aujourd'hui, je réalise cette tache qui me prend beaucoup de temps.


    Merci d'avance pour vos réponses.

    Gr.


  2. #2
    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 : 61
    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 Grooveus75,

    Voici un exemple de code qui fonctionne avec les éléments que tu nous as fourni.

    N'ayant pas plus d'info, j'ai supposé que
    1. ton tableau était le 1er du document (sinon tu dois le retrouver pour te positionner sur sa 1ere cellule)
    2. ton tableau n'était pas forcément en début de document
    3. ton tableau n'avait que 2 colonnes
    4. ton tableau n'avait pas d'entête ni de lignes non concernées par ta demande
    5. tes fichiers d'image s'appelaient comme tu nous l'as dit "00nxxx.jpg". Donc Attention, si pour toi "xxx" signifie n'importe quelle chaine, tu devras adapter, en recherchant alors les fichiers locaux à ton répertoire qui commencent par le bon n°. Pour cela, tu n'as qu'à lire initialement la liste des fichiers de ton répertoire, à mettre les noms dans une liste et à rechercher sur le début de chaque élément. Sur ce sujet, Heureux-Oli a déjà fait une macro qui parcourt les fichiers d'un répertoire


    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
    Sub DVP_InsererLesImages()
        aRepertoire$ = <TonRepertoireAToi>
        Selection.GoTo What:=wdGoToTable, Which:=wdGoToAbsolute
     
        For aI = 1 To ActiveDocument.Tables(1).Rows.Count
            Selection.MoveRight Unit:=wdCell
            If aI < 10 Then
                aNomFichier$ = "00" + Trim(Str$(aI)) + "xxx.jpg"
            ElseIf aI < 100 Then
                aNomFichier$ = "0" + Trim(Str$(aI)) + "xxx.jpg"
            Else
                aNomFichier$ = Trim(Str$(aI)) + "xxx.jpg"
            End If
     
     
            Selection.InlineShapes.AddPicture FileName:=aRepertoire$ + aNomFichier$, LinkToFile:=False, SaveWithDocument:=True
            Selection.MoveRight Unit:=wdCell
        Next
     
        ActiveDocument.Tables(1).Rows(ActiveDocument.Tables(1).Rows.Count).Delete
    End Sub
    a+

  3. #3
    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,

    Si on est dans un tableau, on peut connaître son index en étendant la sélection jusqu'au début du document et en comptant les tables de la sélection.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim oTbl As Table
     
    Selection.HomeKey unit:=wdStory, Extend:=True
    Set oTbl = ActiveDocument.Tables(Selection.Tables.Count)
    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 !

Discussions similaires

  1. [CSS 2] caler des images dans un tableau
    Par majong dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 20/10/2009, 18h01
  2. [WD11] comment inserer automatiquement des colonnes dans une table
    Par incomparable dans le forum WinDev
    Réponses: 3
    Dernier message: 31/08/2009, 13h51
  3. Charger des images dans un tableau
    Par na3ouma dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 15/03/2009, 21h52
  4. [VB]inserer automatiquement des controls dans un listbox
    Par oumarsaw dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 05/04/2006, 18h22
  5. [FB][BLOB] Comment Inserer un Blob (image) dans la base ?
    Par moucrack dans le forum Débuter
    Réponses: 7
    Dernier message: 20/05/2005, 19h01

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