XL 2021 Copie cellules Excel vers Word avec mise à jour automatique

alexandre33260

XLDnaute Occasionnel
Bonjour, je voudrai savoir s'il est possible de copier des cellules Excel vers Word (pas un tableau complet, juste le contenu de la cellule).
Sur une feuille feuil1, je voudrai que les cellules A1, A2, A3 soient copiées vers un document Word.
La feuille Excel sera mise à jour régulièrement et il faudrait une liaison avec mise à jour automatique du doc Word dès que la feuille Excel est modifiée.
J'aurai la même demande pour copier des graphiques.
Merci pour votre aide.
 
Solution
Avec cette macro dans ThisWorkbook la cellule modifiée peut être dans n'importe quelle feuille :
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Wapp As Object, i
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Wapp Is Nothing Then Set Wapp = CreateObject("Word.Application")
On Error GoTo 0
Wapp.Visible = True
With Wapp.Documents.Open(ThisWorkbook.Path & "\Enquête de satisfaction EHPAD.docx").Tables(1)
    For i = 1 To 10
        .Cell(i, 1).Range.Text = Sheets("Analyse").Cells(i, 1)
    Next
End With
End Sub

alexandre33260

XLDnaute Occasionnel
Bonjour DJunqueira, le publipostage ne répond pas à ce que je veux faire (ou je n'ai pas toutes les subtilités).
Le champs de données récupère les données des colonnes.
Ce que je voudrai faire c'est mettre des champs dans mon doc Word, par exemple :
champs 1 qui corresponds à : Mon fichier Excel.xlsx/Feuil3/Ligne 3
champs 2 qui corresponds à : Mon fichier Excel.xlsx/Feuil3/Ligne 5
champs 3 qui corresponds à : Mon fichier Excel.xlsx/Feuil3/Ligne 6
etc...
 

alexandre33260

XLDnaute Occasionnel
MODIFICATION, c'est pas ligne mais cellule
champs 1 qui corresponds à : Mon fichier Excel.xlsx/Feuil3/cellule A3
champs 2 qui corresponds à : Mon fichier Excel.xlsx/Feuil3/cellule A5
champs 3 qui corresponds à : Mon fichier Excel.xlsx/Feuil3/cellule A6
etc...
 

alexandre33260

XLDnaute Occasionnel
Oui, désolé, je me rends compte que c'est pas si simple que ça...
Voila donc le fichier joint, c'est dans la feuille Analyse, j'ai nommé les cellules A2 A3 A4 A5 A6 A8 A9 et A10.
(j'ai plusieurs feuilles à faire par la suite sur le même modèle...)
Il faudrait que ces données soient mise à jour vers un doc Word. C'est pour ça que j'ai nommé les cellule, peut-être en VBA avec Macro, mais là, je suis pas fortiche...
 

Pièces jointes

  • Enquête.xlsx
    19.7 KB · Affichages: 2

DJunqueira

XLDnaute Occasionnel
Vous auriez pu utiliser cette formule dans Analyse!A10.

=JOINDRE.TEXTE(CAR(10);1;Accueil!D2: D75)

Pourriez-vous fournir un exemple de votre fichier Word dans lequel vous souhaitez insérer la cellule et spécifier quelle partie d'Exce vous souhaitez transférer, de préférence en surlignant avec de la couleur ?

Une autre formule Analyse!A4

=Rapport!E2*100&"% des résidents "&SI(Rapport!E2>=50%;"sont";"ne sont pas")&" satisfait de l'accueil physique qui leur a été réservé lors de leur arrivée au sein de la maison de retraite."
 
Dernière édition:

alexandre33260

XLDnaute Occasionnel
Effectivement, la formule est nettement plus simple, merci beaucoup.
Pour le fichier word, je n'ai rien fait encore, j'attendais de voir comment transférer les données pour ensuite faire une mise en page. Je joint donc un fichier word vierge....
 

Pièces jointes

  • Enquête.docx
    11.8 KB · Affichages: 0

job75

XLDnaute Barbatruc
Bonjour,

Téléchargez les fichiers joints dans le même dossier.

Ouvrez le fichier Excel et voyez cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Wapp As Object
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Wapp Is Nothing Then Set Wapp = CreateObject("Word.Application")
On Error GoTo 0
Wapp.Visible = True
With Wapp.Documents.Open(ThisWorkbook.Path & "\Document Word.docx")
    .Tables(1).Cell(1, 2).Range.Text = Cells(3, 1)
    .Tables(1).Cell(2, 2).Range.Text = Cells(5, 1)
    .Tables(1).Cell(3, 2).Range.Text = Cells(6, 1)
End With
End Sub
Elle se déclenche quand on modifie ou valide une cellule quelconque.

A+
 

Pièces jointes

  • Fichier Excel.xlsm
    16.6 KB · Affichages: 3
  • Document Word.docx
    12.2 KB · Affichages: 2

alexandre33260

XLDnaute Occasionnel
Je viens de tester, c'est très bien, c'est ce que recherchais, je vais bidouiller tout ça pour faire ma page à ma sauce.
merci beaucoup pour le coup de main.
Et oui, c'est bien débloquer, mais c'est la première fois que je dois faire cette manip, il faut dire que je ne suis pas un grand habitué des Macros....
 

alexandre33260

XLDnaute Occasionnel
job75, ça ne fonctionne pas à tous les coups, pour que ça mette le fichier Word à jour, si je change des données dans la feuille Accueil, je suis obligé d'aller dans la barre d'adresse d'une cellule de la feuille analyse et d' "ENTER" en fin de ligne pour que la mise à jour soit effective.
 

Pièces jointes

  • Enquête de satisfaction EHPAD.xlsm
    22.5 KB · Affichages: 1
  • Enquête de satisfaction EHPAD.docx
    13.5 KB · Affichages: 1

job75

XLDnaute Barbatruc
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Wapp As Object, i
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Wapp Is Nothing Then Set Wapp = CreateObject("Word.Application")
On Error GoTo 0
Wapp.Visible = True
With Wapp.Documents.Open(ThisWorkbook.Path & "\Enquête de satisfaction EHPAD.docx").Tables(1)
    For i = 1 To 10
        .Cell(i, 1).Range.Text = Cells(i, 1)
    Next
End With
End Sub
Comme déjà dit il suffit de modifier une cellule quelconque pour que les 10 cellules soient copiées.
 

Pièces jointes

  • Enquête de satisfaction EHPAD.xlsm
    22.9 KB · Affichages: 2
  • Enquête de satisfaction EHPAD.docx
    12.4 KB · Affichages: 1

Discussions similaires

Statistiques des forums

Discussions
312 210
Messages
2 086 281
Membres
103 170
dernier inscrit
HASSEN@45