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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
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

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 🙂
 
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

Dernière édition:
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é !!!!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour