Microsoft 365 Remplir tableau word avec cellules fusionnées avec excel VBA

MaMau

XLDnaute Nouveau
Bonjour,
Je suis débutant en code VBA et j'ai un petit problème avec ma macro.
Je souhaite transférer des données Excel dans un tableau Word ( document Word déjà existant).
Le problème c'est que ces cellules sont fusionnées et que quand j'écris sa : "WordDoc.Tables(6).Columns(6).Rows(2).Range.Text = Range("H4") "
alors sa met "impossible d'accéder à des colonnes individuelles de cette collection car le tableau possède des cellules de largeurs différentes "

Alors du coup je sais pas comment faire pour remplir ce tableau Word par Excel. Pouvez vous m'aider ?
 
Solution
Il n'est pas trop difficile d'adapter la macro :
Code:
Sub Word()
Dim Wapp As Object, Wdoc As Object, i&
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Err Then Set Wapp = CreateObject("Word.Application")
Wapp.Visible = True
Set Wdoc = Wapp.Documents.Open(ThisWorkbook.Path & "\Doc Word.docx")
If Wdoc Is Nothing Then MsgBox "Doc Word.docx introuvable !", 48: Exit Sub
Wdoc.Tables(1).Cell(1, 4) = Cells(1, 1) 'décalage en ligne 1 à cause des cellules fusionnées
Wdoc.Tables(1).Cell(1, 5) = Cells(1, 2)
For i = 2 To 9 'nombre de lignes à adapter
    Wdoc.Tables(1).Cell(i, 5) = Cells(i, 1)
    Wdoc.Tables(1).Cell(i, 6) = Cells(i, 2)
Next
AppActivate Wapp.Caption
End Sub

job75

XLDnaute Barbatruc
Bonjour MaMau, bienvenue sur XLD,

Les contenus des cellules fusionnées sont transférés sans problème dans Word.

Téléchargez les fichiers joints dans le même dossier et exécutez cette macro affectée au bouton :
VB:
Sub Word()
Dim Wapp As Object, Wdoc As Object
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Err Then Set Wapp = CreateObject("Word.Application")
Wapp.Visible = True
Set Wdoc = Wapp.Documents.Open(ThisWorkbook.Path & "\Doc Word.docx")
If Wdoc Is Nothing Then MsgBox "Doc Word.docx introuvable !", 48: Exit Sub
Wdoc.Tables(1).Cell(3, 2) = Range("B3") 'cellule fusionnée
Wdoc.Tables(1).Cell(4, 3) = Range("C4") 'cellule fusionnée
AppActivate Wapp.Caption
End Sub
A+
 

Pièces jointes

  • Classeur(1).xlsm
    16.7 KB · Affichages: 5
  • Doc Word.docx
    12.4 KB · Affichages: 5

MaMau

XLDnaute Nouveau
Bonjour MaMau, bienvenue sur XLD,

Les contenus des cellules fusionnées sont transférés sans problème dans Word.

Téléchargez les fichiers joints dans le même dossier et exécutez cette macro affectée au bouton :
VB:
Sub Word()
Dim Wapp As Object, Wdoc As Object
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Err Then Set Wapp = CreateObject("Word.Application")
Wapp.Visible = True
Set Wdoc = Wapp.Documents.Open(ThisWorkbook.Path & "\Doc Word.docx")
If Wdoc Is Nothing Then MsgBox "Doc Word.docx introuvable !", 48: Exit Sub
Wdoc.Tables(1).Cell(3, 2) = Range("B3") 'cellule fusionnée
Wdoc.Tables(1).Cell(4, 3) = Range("C4") 'cellule fusionnée
AppActivate Wapp.Caption
End Sub
A+
D'accord Merci je vais le tester :)
 

MaMau

XLDnaute Nouveau
Un fil => une question.

Et d'abord qu'en est-il de ma réponse au post #1 ?
Alors j'ai essayé sa à l'air de marcher . Le seul problème c'est que sa me met pas le texte du excel dans le word
1630406586983.png

ca c'est mon excel et je dois le mettre sur un word enfin les données à l'intérieur sauf que sa me le met pas
 

job75

XLDnaute Barbatruc
Il n'est pas trop difficile d'adapter la macro :
Code:
Sub Word()
Dim Wapp As Object, Wdoc As Object, i&
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Err Then Set Wapp = CreateObject("Word.Application")
Wapp.Visible = True
Set Wdoc = Wapp.Documents.Open(ThisWorkbook.Path & "\Doc Word.docx")
If Wdoc Is Nothing Then MsgBox "Doc Word.docx introuvable !", 48: Exit Sub
Wdoc.Tables(1).Cell(1, 4) = Cells(1, 1) 'décalage en ligne 1 à cause des cellules fusionnées
Wdoc.Tables(1).Cell(1, 5) = Cells(1, 2)
For i = 2 To 9 'nombre de lignes à adapter
    Wdoc.Tables(1).Cell(i, 5) = Cells(i, 1)
    Wdoc.Tables(1).Cell(i, 6) = Cells(i, 2)
Next
AppActivate Wapp.Caption
End Sub
 

Pièces jointes

  • Classeur(2).xlsm
    17.7 KB · Affichages: 8
  • Doc Word.docx
    13 KB · Affichages: 8
Dernière édition:

MaMau

XLDnaute Nouveau
Il n'est pas trop difficile d'adapter la macro :
Code:
Sub Word()
Dim Wapp As Object, Wdoc As Object, i&
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Err Then Set Wapp = CreateObject("Word.Application")
Wapp.Visible = True
Set Wdoc = Wapp.Documents.Open(ThisWorkbook.Path & "\Doc Word.docx")
If Wdoc Is Nothing Then MsgBox "Doc Word.docx introuvable !", 48: Exit Sub
Wdoc.Tables(1).Cell(1, 4) = Cells(1, 1) 'décalage en ligne 1 à cause des cellules fusionnées
Wdoc.Tables(1).Cell(1, 5) = Cells(1, 2)
For i = 2 To 9 'nombre de lignes à adapter
    Wdoc.Tables(1).Cell(i, 5) = Cells(i, 1)
    Wdoc.Tables(1).Cell(i, 6) = Cells(i, 2)
Next
AppActivate Wapp.Caption
End Sub
Merci beaucoup j'ai réajusté , ça à marché !!!!!
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 097
Messages
2 116 186
Membres
112 679
dernier inscrit
Yupanki