Bonjour à tous,
Sur un des projets sur lesquels je travaille, je n'arrive pas à générer un document word à partir d'excel en conservant le format source.
Pour vous donner un peu d'éléments :
1. J'ai un word template dans lequel j'ai mis des signets pour identifier les endroits où je veux coller les données venant d'excel
2. Je prépare mes données dans un onglet excel
3. Je copie le range contenant les données préparées et je les colle dans le word (à l'endroit défini par le signet). Et c'est ici que j'ai un problème, car pour une raison que je n'explique pas, le format des données source n'est pas toujours conservé; le range est parfois collé comme une image. J'aimerais que le format source soit toujours conservé.
Merci d'avance pour vos lumières.
Ci-dessous la procédure qui fait le copier-coller :
Sub copieTableauDansWord(Source As String, cible As String, docWord As Word.Application, Optional typeFormat As Variant = "")
copyAttempt:
If docWord.ActiveDocument.Bookmarks.Exists(cible) = True Then
Application.Range(Source).Copy
On Error GoTo PasteFail
docWord.Selection.Goto What:=wdGoToBookmark, Name:=cible
If typeFormat = "" Then
docWord.Selection.Paste
Else
docWord.Selection.PasteSpecial DataType:=typeFormat
End If
On Error GoTo 0
End If
Application.CutCopyMode = False
Exit Sub
PasteFail:
'patch pour prévenir un bug qui arrive quand le clipboard ne répond pas assez rapidement.
Resume copyAttempt
End Sub
Sur un des projets sur lesquels je travaille, je n'arrive pas à générer un document word à partir d'excel en conservant le format source.
Pour vous donner un peu d'éléments :
1. J'ai un word template dans lequel j'ai mis des signets pour identifier les endroits où je veux coller les données venant d'excel
2. Je prépare mes données dans un onglet excel
3. Je copie le range contenant les données préparées et je les colle dans le word (à l'endroit défini par le signet). Et c'est ici que j'ai un problème, car pour une raison que je n'explique pas, le format des données source n'est pas toujours conservé; le range est parfois collé comme une image. J'aimerais que le format source soit toujours conservé.
Merci d'avance pour vos lumières.
Ci-dessous la procédure qui fait le copier-coller :
Sub copieTableauDansWord(Source As String, cible As String, docWord As Word.Application, Optional typeFormat As Variant = "")
copyAttempt:
If docWord.ActiveDocument.Bookmarks.Exists(cible) = True Then
Application.Range(Source).Copy
On Error GoTo PasteFail
docWord.Selection.Goto What:=wdGoToBookmark, Name:=cible
If typeFormat = "" Then
docWord.Selection.Paste
Else
docWord.Selection.PasteSpecial DataType:=typeFormat
End If
On Error GoTo 0
End If
Application.CutCopyMode = False
Exit Sub
PasteFail:
'patch pour prévenir un bug qui arrive quand le clipboard ne répond pas assez rapidement.
Resume copyAttempt
End Sub