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 :

Repérage des cellules dans tableau Word [Toutes versions]


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Repérage des cellules dans tableau Word
    Bonjour,

    J'ai besoin de créer un formulaire sous Word où des champs texte sont à remplir, ma problématique est de coller une copie d'écran provenant du presse papier par l'intermédiaire d'un bouton. A priori il n'est pas possible de coller une image dans un champs texte donc je me retourne vers une cellule de tableau mais comment indiquer dans une macro où l'image doit être collée. Dans Excel pas de problème les cellules ont un repère alphanumérique mais dans un tableau Word je ne sais pas comment l'indiquer???
    Merci de votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Salut,

    Citation Envoyé par Zigomat Voir le message
    Dans Excel pas de problème les cellules ont un repère alphanumérique mais dans un tableau Word je ne sais pas comment l'indiquer???
    Un fois que tu as le tableau dans word (via ActiveDocument.Tables(<indice de tableau pour le document>),
    tu peux accéder aux différentes cellules du tableau via ActiveDocument.Tables(<indice de tableau pour le document>).Cell(<ligne>,<colonne>).

    Pour plus d'info, voir le tutoriel Débutez en VBA Word\Les Tableaux d'Olivier Lebeau

    A+

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci pour la réponse.
    Je pense que je vais pouvoir me débrouiller avec le tutoriel.

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Re.

    Si tu arrives à t'en sortir avec le tutoriel, n'oublie pas de mettre le sujet en résolu.
    voir bouton en bas du sujet.
    A+

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Ok, le tuto m'a bien aidé, l'insertion de la copie d'écran se fait bien dans le tableau. Il faut maintenant que j'arrive à dimensionner la taille de l'image à la taille de la cellule car lors du collage l'image sort de la page.

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Salut,

    Quel code est-ce que tu utilise pour insérer l'image ?
    Si tu utilise un .AddPicture tu dois pouvoir récupérer une référence sur l'image.
    Puis redimensionner l'image avec .Width et .Height.

  7. #7
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Non, en fait je fais un coller du presse papier avec le code "Sélection. Paste" et je veux que l'image prenne la taille de la cellule du tableau.

  8. #8
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Salut,

    Dans ce cas, si tu ne copies que l'image, essaye après le Selection.Paste de récupérer l'image dans la plage avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Selection.Range.Previous.InlineShapes(1)
        .Width = 10
        .Height = 10
    End With

  9. #9
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Je viens d'essayer mais j'ai une "erreur d'exécution 5941" le membre de la collection requis n'existe pas.

    En fait la copie d'écran est bien collée dans le tableau mais pas redimensionnée.
    Voici l'ensemble de la macro si tu veux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
    ActiveDocument.Unprotect Password:=""
    ActiveDocument.Tables(1).Select
    Selection.Paste
    With Selection.Range.Previous.InlineShapes(1)
        .Width = 10
        .Height = 10
    End With
    ActiveDocument.Protect Password:="", Type:=wdAllowOnlyFormFields, NoReset:=True
    End Sub

  10. #10
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonsoir,

    Il y a probablement plus simple, mais je n'ai pas trouvé.
    La routine ReDimShapeAtRange suivante permet de redimensionner l'image qui se trouve dans un Range.

    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
    Private Sub CommandButton1_Click()
        ActiveDocument.Unprotect Password:=""
        With ActiveDocument.Tables(1)
             .Range.Paste
             ReDimShapeAtRange .Range, 10, 10
        End With
        ActiveDocument.Protect Password:="", Type:=wdAllowOnlyFormFields, NoReset:=True
    End Sub
     
    Sub ReDimShapeAtRange(r As Range, w As Integer, h As Integer)
        Dim sh As InlineShape
        For Each sh In ActiveDocument.InlineShapes
            If sh.Range.Start = r.Start Then
                sh.Width = w
                sh.Height = h
                Exit For
            End If
        Next sh
    End Sub
    P.S. :Lorsque tu postes du code, pour obtenir la mise en page prévue, sélectionne le code et clique sur l'icône .

  11. #11
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonsoir,
    Je viens d'essayer ton dernier code et cela fonctionne bien, il faut juste que je dimensionne correctement avec les données (10 , 10 sont vraiment trop petites), à part cela le dimensionnement s'exécute automatiquement.
    Encore merci pour ton aide.
    Je clôture donc le post.

    A bientôt

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/04/2009, 06h24
  2. Insérer des cellules dans un tableau
    Par BkD35 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/12/2007, 22h00
  3. Augmenter la taille des cellules dans un tableau css.
    Par Velkan.nexus dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 04/12/2007, 12h44
  4. recherche dans une cellule de tableau word
    Par jeantrucmuche dans le forum VBA Word
    Réponses: 1
    Dernier message: 01/08/2007, 17h52
  5. Fixer la taille des cellules dans un tableau HTML ?
    Par bilou95 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 19/03/2007, 16h10

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