Bonjour,
Je souhaiterais copier un tableau ou une plage de données de excel vers word.
Quelqu'un pourrait-il m'aider svp ?
Bonjour,
Je souhaiterais copier un tableau ou une plage de données de excel vers word.
Quelqu'un pourrait-il m'aider svp ?
Bonjour,
Comme beaucoup de contributeurs, je n'ouvre jamais les fichiers joints.
Qu'as-tu déjà codé, pour ce projet ?
Pour pouvoir t'aider, j'aimerais savoir
- Pour Excel, sais-tu ce qu'est une cellule ou plage nommées ?
- Pour Word, sais-tu ce qu'est un signet ?
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer suret si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Comme Philippe Tulliez (), je n'ouvre pas les fichiers joints et comme tu ne donnes quasiment pas d'informations dans ta demande, ma réponse sera générique.
Pour la copie dans Excel, utilise la méthode Copy de Range.
https://msdn.microsoft.com/fr-fr/lib...0(v=office.15)
Pour coller dans Word, méthode Paste (ou une de ses petites soeurs) appliqué au Range de l'emplacement souhaité.
https://docs.microsoft.com/fr-fr/off...rd.range.paste
Bonjour
Pour l'instant j'arrive à ouvrir Word avec les signets mais pas à y insérer les données de mon tableau
Voici ce que j'ai fait
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 Sub exportDonneesDansSignetsWord() Dim AppWord As Word.Application Dim WordDoc As Word.Document Dim i As Byte Set AppWord = CreateObject("word.application") 'ouvre session word Set WordDoc = AppWord.Documents.Open("E:\Essai Excel vers Word.docm") 'ouvre document Word Attention au chemin!! AppWord.Visible = True 'word affiché pendant l'operation For i = 1 To 50 Range("TABLEAU" & i).Copy 'les signets du document Word sont nommés Tableau1, Tableau2 WordDoc.Bookmarks("Tableau1" & i).Range.Select(B4:D9) AppWord.Selection.Paste Next i AppWord.Visible = True 'affiche le document Word WordDoc.Close False 'ferme le document word en sauvegardant les données 'AppWord.Quit 'ferme la session Word End Sub
Bonjour
J'ai modifié mon code mais il me met une erreur 1004
Je voudrais qu'à la fin du traitement le document word s'ouvre et reste visible
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 Private Sub CommandButton1_Click() Dim AppWord As Word.Application Dim WordDoc As Word.Document Dim i As Byte Set AppWord = CreateObject("word.application") 'ouvre session word Set WordDoc = AppWord.Documents.Open("E:\Essai Excel vers Word.docm") 'ouvre document Word Attention au chemin!! AppWord.Visible = True 'word affiché pendant l'operation For i = 1 To 50 Range("TABLEAU" & i).Copy 'les signets du document Word sont nommés Tableau1, Tableau2 WordDoc.Bookmarks("Tableau" & i).Range.Select AppWord.Selection.Paste Next i AppWord.Visible = True 'affiche le document Word WordDoc.Close False 'ferme le document word en sauvegardant les données 'AppWord.Quit 'ferme la session Word End Sub
Merci
Bonjour,
La procédure que j'ai développée fonctionne avec côté Excel une cellule ou plage de cellules nommée (Gestionnaire des noms) et côté Word un signet
Autrement dit, si tu as un signet qui se nomme Adresse dans le document qui te sert de modèle, tu dois avoir une cellule ou une plage (si tableau) nommée Adresse.
Si le signet n'existe pas dans Word, la fonction renvoie False dans le cas contraire True
Code de la procédure
Donc si je me réfère au code que tu as publié, voici la ligne de code pour invoquer cette procédure CopyXls2Wrd WordDoc, ThisWorkbook.Names("Contact") en copiant la cellule nommée Contact vers le signet de même nom.
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 Function CopyXls2Wrd(wrdDoc As Word.Document, oName As Name) As Boolean ' Philippe Tulliez www.magicoffice.be ' Copie la cellule ou plage de cellules définie par l'argument oName ' Renvoie True si la copie a bien eu lieu ' Arguments ' wrdDoc ' Document qui contient le signet qui contiendra la ou les cellules copiées dans Excel ' oName ' Nom de la cellule ou plage de cellules à copier (Le signet doit avoir le même nom) Dim oRng As Range Dim Place As Long Dim BookmarkName As String Dim appWrd As Word.Application Set appWrd = wrdDoc.Parent Set oRng = oName.RefersToRange ' Objet Range à copier ' Place = wrdDoc.Bookmarks(BookmarkName).Range.Start BookmarkName = oName.Name With wrdDoc If .Bookmarks.Exists(BookmarkName) Then If oRng.Count = 1 Then .Bookmarks(BookmarkName).Range.Text = oRng.Text Else oRng.Copy .Bookmarks(BookmarkName).Select appWrd.Selection.PasteSpecial DataType:=9, Placement:=0 Application.CutCopyMode = False End If CopyXls2Wrd = True End If End With Set appWrd = Nothing: Set oRng = Nothing End Function
Voici ma procédure de test qui invoque la fonction CopyXls2Wrd. Le document Word, reste ouvert et n'est pas sauvé
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 Sub T() ' Nécessite de référencer Microsoft Word nn.n Object Library ' Déclaration Const SubFolder As String = "Template" ' Sous-répertoire où se trouve le modèle Const TemplateName As String = "Courrier.Docx" ' Nom du modèle Dim appWrd As Word.Application Dim wrdDoc As Word.Document Dim appPath As String, wrdFullName As String ' appPath = ThisWorkbook.Path wrdFullName = appPath & "\" & SubFolder & "\" & TemplateName Set appWrd = CreateObject("Word.Application") Set wrdDoc = appWrd.Documents.Add(Template:=wrdFullName) ' With appWrd .Visible = True: appWrd.Activate End With ' ' Copie des cellules et plages de cellules vers les signets CopyXls2Wrd wrdDoc, ThisWorkbook.Names("bmOffre") CopyXls2Wrd wrdDoc, ThisWorkbook.Names("bmName") ' Set appWrd = Nothing: Set wrdDoc = Nothing End Sub
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer suret si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Bonjour,
Je ne comprends pas pourquoi dans la déclaration des variables il me met une erreur
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sub T() Dim appWrd As Word.Application
Bonjour,
Et bien tout simplement parce-que le complément Word n'est pas référencé.
C'est pourtant indiqué en début de procédure 'Nécessite de référencer Microsoft Word nn.n Object Library
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer suret si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Partager