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 :

[VBA-W] copier du texte d'excel dans word


Sujet :

VBA Word

  1. #21
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Bon, je viens de regarder. Peux-tu copier sans pb une zone de texte ? Oui ! Avec liaison ? Non ! (Excel 2003) (Pas prévu dans collage spécial)
    Ceci dit, tu peux copier une cellule avec liaison et, dans Word, elle ressemblera à une zone de texte.

  2. #22
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    Donc il vaut mieux que j'abandonne ma boite de dialogue sous Word?

  3. #23
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ça me paraît une évidence.
    Ceci dit, tu peux laisser ta question ouverte, je ne sais pas tout, tant s'en faut, et peut-être qu'un bbil, ou un SilkyRoad, ou un Cafeine ou un Adadavyvy ou Unautre... aura une solution... (?) Mais là, je ne promets rien...
    A+

  4. #24
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    Ok la macro suivante fonctionne à peu près, et me permet d'utiliser une boite de dialogue où l'utilisateur entre une clef utilisée dans la suite de la macro sous le nom de Entree.

    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
    Private Sub CommandButton1_Click()
    Dim XlAppli As Object
    Dim Entree As Variant
    Dim XlCl As Workbook
    Dim Xlfl As Worksheet
        Set XlAppli = CreateObject("Excel.Application") '< L'appli Excel
        Set XlCl = XlAppli.Workbooks.Open("C:\Modèles de documents\BdD excel.xls") '< le classeur
        Set Xlfl = XlCl.Worksheets("Feuil1") '< la feuille
        Entree = TextBox1.Text
        With Xlfl
            .Range(Entree).Copy ' < La Plage
        End With
        On Error Resume Next
        'Colle la plage Excel avec liaison à l'emplacement du curseur
        Selection.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, Placement:= _
            wdInLine, DisplayAsIcon:=False
        DoEvents
        XlCl.Close False
        XlAppli.Quit
        Set XlAppli = Nothing
        Set XlCl = Nothing
        Set Xlfl = Nothing
    End Sub
    Je dis bien à peu près car le seul soucis restant est que ça colle bien une cellule avec liaison qui ressemble à une zone de texte mais celle ci est souvent mal placée.
    Je veux dire par là que j'ai besoin que cette zone de texte s'insère dans un tableau, mais la cellule du tableau Word ne s'adapte pas (même après avoir coché "ajuster au contenu") ce qui fait que je n'ai que la partie basse de la zone de texte.
    Peut-on arranger ça?

  5. #25
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    C'est ton Link:=True qui gâche tout sinon il y avait une autre solution...
    Bon, le plus simple est d'ajuster le format de cellule dans Excel. J'ai bien dit, "le plus simple" parce que ça, je l'ai eu fait. Par contre, j'ignore s'il est possible de modifier le format d'une cellule Excel, insérée et liée dans Word.

    J'ai trouvé une solution qui consiste à redimensionner l'objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        With ActiveDocument.InlineShapes(1)
            .Height = 10
            .Width = 100
        End With
    Pour avoir les bonnes dimensions, tu sélectionnes la cellule et tu modifies la taille en enregistrant la macro. Format -> Objet -> Onglet Taille
    A+

  6. #26
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    Ok j'ai mis le temps pour essayer mais, je ne sais pourquoi ni comment, word s'est enfin mis à adapter les tailles des cellules du tableau à leurs contenus.
    J'ai cependant une autre question: le texte inséré se situe dans la troisième colonne de mon doc excel, et plusieurs cellules sont regoupées en catégories. Un nom est attribué à cette catégorie dans la première colonne, que j'aimerais pouvoir ajouter dans le tableau word.
    Le hic, c'est que puisque j'ai nommé chaque cellule, je ne peux utiliser les A,B,C,etc.

    J'ai pensé à l'algorithme suivant:
    Dimension des variables
    Utilisation des fonctions Set pour le classeur, la feuille, etc.
    entree = le texte saisi par l'utilisateur dans une textbox, nom de la cellule à copier
    cellule = la cellule de la 1ère colonne sur la même ligne qu'entree
    Tant que le texte de cellule est ""
    faire cellule = cellule au dessus
    Si Texte de cellule est différent de ""
    Alors copier/coller dans word (en s'inspirant de ce qui a déjà été programmé)
    Fin de si
    fait.

    Je pense pouvoir me débrouiller avec les copiers/coller mais mes ennuis sont le tant que et le passage du nom de la cellule entree à la cellule de la 1ère colonne.

    J'espère être suffisamment clair et que vous pourriez m'aider sur cette macro.

Discussions similaires

  1. VBA - Copier tableau excel dans Word en Image
    Par pofito dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/02/2014, 18h20
  2. Copier de feuille d'Excel dans word
    Par wqazsx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/11/2007, 17h36
  3. [VBA-E]Copier des éléments excel dans word
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/03/2007, 10h11
  4. Réponses: 1
    Dernier message: 19/12/2006, 16h12
  5. [VBA-A]Copier des données d'Excel vers Word
    Par soad029 dans le forum VBA Word
    Réponses: 15
    Dernier message: 16/03/2006, 11h56

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