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

Contribuez Discussion :

Copier une cellule XL pour l'insérer dans un document Word


Sujet :

Contribuez

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Points : 306
    Points
    306
    Par défaut Copier une cellule XL pour l'insérer dans un document Word
    Je me permet de mettre ma contribution dans ce forum car j'ai passé pas mal de temps sur ce probleme!

    Objectif: Copier une cellule XL pour l'insérer dans un document Word

    Ce qu'on trouve beaucoup sur le site:
    Copie partielle et simplifiée d'une macro proposée par Ouskel'n'or

    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
    32
    33
    34
    35
    36
    37
     
    Sub CopierAlEndroitVouluUnePlageDeCellulesExcelDansWord()
     
    ' Création des objets Word
    Dim WdApp As Word.Application
    Dim WdDoc As Word.Document
     
    'ouvre la session Word
        Set WdApp = CreateObject("word.application")     
    'ouvre le doc
        Set WdDoc = WdApp.Documents.Open("D:\Doc\Worddoc.doc")    
    'masque l'application (Pour les tests, mettre à True)
        WdApp.Visible = False                                   
        'Sélection de la cellule à copier par exemple la dernière cellule de la colonne A du Workbooks Xl
     
       Cells(1,1).end(xldown).copy 
     
    'Place l'image sur le signet "Signet"
        With WdApp
            .Selection.Goto What:=wdGoToBookmark, Name:="Signet"
    'Coller la cellule
            .Selection.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, _
                       Placement:=wdInLine, DisplayAsIcon:=False
        End With
     
        'WdApp.Visible = True 'Pour voir (Ne pas fermer le fichier depuis Word)
     'Enregistre et ferme le doc word
        WdDoc.Close True                       
     'Laisse au system le temps d'enregistrer le fichier
        DoEvents           
      'ferme la session
      WdApp.Quit                                            
     
        Set WdApp = Nothing
        Set WdDoc = Nothing
     
    end sub
    L'inconvénient de cette procédure est qu'elle va intégrer un tableau XL à Word (bien que ca ne se voit pas) avec la conséquence d'alourdir grandement le poids du fichier.

    Je vous propose le code suivant, qui est accessible par recherche sur le site mais il faut vraiment bien fouiner.
    Il permet de ne copier que le texte d'une cellule et non la cellule elle meme.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    Sub CopierAlEndroitVouluUnePlageDeCellulesExcelDansWord()
    
    ' Création des objets Word
    Dim WdApp As Word.Application
    Dim WdDoc As Word.Document
    
    'ouvre la session Word
        Set WdApp = CreateObject("word.application")     
    'ouvre le doc
        Set WdDoc = WdApp.Documents.Open("D:\Doc\Worddoc.doc")    
    'masque l'application (Pour les tests, mettre à True)
        WdApp.Visible = False                                   
        'Sélection DU TEXTE la cellule à copier en passant par une variable string
    dim Letexte as string
     Letexte =  Cells(1,1).end(xldown).text 
                                 
    'Place l'image sur le signet "Signet"
        With WdApp
            .Selection.Goto What:=wdGoToBookmark, Name:="Signet"
    'Coller LE TEXTE de la cellule
            .Selection.typetext text:= Letexte
    'Ou alors on pourait se passer de la variable avec la ligne suivante:
    '       .Selection.typetext text:= workbooks(1).Sheets(1).cells(1,1).end(Xldown).text
    
        End With
     'Pour voir (Ne pas fermer le fichier depuis Word)
        'WdApp.Visible = True 
     'Enregistre et ferme le doc word
        WdDoc.Close True                       
     'Laisse au system le temps d'enregistrer le fichier
        DoEvents           
      'ferme la session
      WdApp.Quit                                            
        
        Set WdApp = Nothing
        Set WdDoc = Nothing
    
    end sub
    En espérant aider les ames errantes.
    Coconut2

  2. #2
    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
    Juste une petite remarque :
    Dans le premier code proposé, la cellule reste liée au fichier Excel => Toute modification de la cellule étant répercutée dans le docuent Word alors que dans le second code, la donnée restera inchangée en cas de modification du fichier Excel.

Discussions similaires

  1. Récupérer un champ texte d'une page web pour l'insérer dans une autre
    Par Cubilot dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 02/06/2014, 10h08
  2. Copier une cellule XL pour l'insérer dans un document Word
    Par Matrixmax dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/03/2013, 15h49
  3. Réponses: 7
    Dernier message: 03/01/2012, 11h14
  4. Réponses: 4
    Dernier message: 23/03/2010, 18h29
  5. [VBA-E] Copier une cellule XL pour l'insérer dans un document Word
    Par lucarno dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/03/2009, 13h12

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