Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Contribuez
Contribuez Placez ici vos codes, sources, trucs et astuces que vous souhaitez partager avec les membres du club.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2007, 10h47   #1
Membre habitué
 
Inscription : juin 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 175
Points : 147
Points : 147
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 :
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 :
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
COCONUT2 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/07/2007, 09h50   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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.
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h37.


 
 
 
 
Partenaires

Hébergement Web