Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fusion excel avec word 2010

9 réponses
Avatar
Luc
dans word les décimales font n'importe quoi !
il faut modifier tous les champs dans word, c'est la galère.
Avec excel et word 2003, on avait pas ce pb
dur dur

Luc

9 réponses

Avatar
MichD
Bonjour,

À force de simplifier la présentation de ta question,
on finit par perdre l'essentiel de ton propos.
Alors, comment formuler une réponse convenable?

MichD
---------------------------------------------------------------
Avatar
Luc
MichD a exposé le 17/03/2013 :
Bonjour,

À force de simplifier la présentation de ta question,
on finit par perdre l'essentiel de ton propos.
Alors, comment formuler une réponse convenable?

MichD
---------------------------------------------------------------



Pardon pardon, j'ai un tableau excel avec ligne d'en tete :
nom, quantité, libellé, prix unitaire, ht, tva, ttc
j'ouvre un tableau word et avec publipostage je fusionne avec le
tableau excel,
quand je fais l'apercu des resultats dans word, il met plein de
decimale dans les chiffres,
ma question est ce qu'il y a un moyen simple et rapide pour afficher
que les 2 chiffres apres la virgule comme dans excel ?
je sais qu'on peut modifie les codes champs {MERGEFIELD montant#
##0.00}, mais quand il y a une dizaine de champ, pas très pratique.
C'est avec Excel et Word 2010.
J'espère que je suis plus explicite.
Luc
Avatar
DanielCo
Bonjour,

Utilise, avec prudence l'option "Décimale fixe" si tu as le même nombre
de décimales pour tous les nombres. Mais attention, ce n'est pas une
option d'affichage. Les nombres sont réellement tronqués. Si tu
utilises cette option avec deux décimales et que tu entres "2" dans une
cellules, Excel va comprendre "0,02". A mon avis, c'est à éviter à tout
prix, le remède est pire que le mal.

Daniel


MichD a exposé le 17/03/2013 :
Bonjour,

À force de simplifier la présentation de ta question,
on finit par perdre l'essentiel de ton propos.
Alors, comment formuler une réponse convenable?

MichD
---------------------------------------------------------------



Pardon pardon, j'ai un tableau excel avec ligne d'en tete :
nom, quantité, libellé, prix unitaire, ht, tva, ttc
j'ouvre un tableau word et avec publipostage je fusionne avec le tableau
excel,
quand je fais l'apercu des resultats dans word, il met plein de decimale dans
les chiffres,
ma question est ce qu'il y a un moyen simple et rapide pour afficher que les
2 chiffres apres la virgule comme dans excel ?
je sais qu'on peut modifie les codes champs {MERGEFIELD montant# ##0.00},
mais quand il y a une dizaine de champ, pas très pratique.
C'est avec Excel et Word 2010.
J'espère que je suis plus explicite.
Luc
Avatar
Luc
DanielCo avait soumis l'idée :
Bonjour,

Utilise, avec prudence l'option "Décimale fixe" si tu as le même nombre de
décimales pour tous les nombres. Mais attention, ce n'est pas une option
d'affichage. Les nombres sont réellement tronqués. Si tu utilises cette
option avec deux décimales et que tu entres "2" dans une cellules, Excel va
comprendre "0,02". A mon avis, c'est à éviter à tout prix, le remède est pire
que le mal.

Daniel


MichD a exposé le 17/03/2013 :
Bonjour,

À force de simplifier la présentation de ta question,
on finit par perdre l'essentiel de ton propos.
Alors, comment formuler une réponse convenable?

MichD
---------------------------------------------------------------



Pardon pardon, j'ai un tableau excel avec ligne d'en tete :
nom, quantité, libellé, prix unitaire, ht, tva, ttc
j'ouvre un tableau word et avec publipostage je fusionne avec le tableau
excel,
quand je fais l'apercu des resultats dans word, il met plein de decimale
dans les chiffres,
ma question est ce qu'il y a un moyen simple et rapide pour afficher que
les 2 chiffres apres la virgule comme dans excel ?
je sais qu'on peut modifie les codes champs {MERGEFIELD montant# ##0.00},
mais quand il y a une dizaine de champ, pas très pratique.
C'est avec Excel et Word 2010.
J'espère que je suis plus explicite.
Luc





Bonjour,
Dans Excel, il y 2 chiffres après la virgule soit avec le format
numérique ou avec la formule arrondi(nombre;2)
C'est dans word le pb quand je fusionne, il peut me mettre une dizaine
de chiffre après la virgule.
Luc
Avatar
DanielCo
Bonjour,
Dans Excel, il y 2 chiffres après la virgule soit avec le format numérique
ou avec la formule arrondi(nombre;2)
C'est dans word le pb quand je fusionne, il peut me mettre une dizaine de
chiffre après la virgule.
Luc



C'est dans Word qu'il faut alors régler le problème. Tu es sur un forum
Excel ici.
Daniel
Avatar
Luc
Après mûre réflexion, DanielCo a écrit :
Bonjour,
Dans Excel, il y 2 chiffres après la virgule soit avec le format numérique
ou avec la formule arrondi(nombre;2)
C'est dans word le pb quand je fusionne, il peut me mettre une dizaine de
chiffre après la virgule.
Luc



C'est dans Word qu'il faut alors régler le problème. Tu es sur un forum Excel
ici.
Daniel



Ok, je vais poser la question dans le forum de Word
Merci.
Luc
Avatar
MichD
Si tu utilises la macro que je t'ai donnée,
essaie avec cette version de la macro pour
copier la plage de cellules d'Excel dans un
tableau Word.


Sub test()
Dim Rg As Range
Dim Wd As Object
Dim Dc As Object, C As Column
Dim T As Object, P As Row
Dim A As Integer, B As Integer
Dim Bb As Border

'Defined range to copy
With Worksheets("Feuil1")
Set Rg = .Range("A1:D5")
End With

Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add

Set T = Dc.Tables.Add(Range:Ü.Range, _
NumRows:=Rg.Rows.Count, _
NumColumns:=Rg.Columns.Count)

For A = 1 To Rg.Rows.Count
For B = 1 To Rg.Columns.Count
If IsNumeric(Rg(A, B)) = True Then
T.Cell(A, B).Range = Application.Round(Rg(A, B))
Else
T.Cell(A, B).Range = Rg(A, B)
End If
Next
Next

'To apply borders if necessary
With T
For Each C In .Range.Columns
C.Borders(wdBorderHorizontal).Visible = True
Next
For Each P In .Range.Rows
P.Borders(wdBorderVertical).Visible = True
Next
For A = -4 To -1
.Range.Borders(A) = True
Next
End With
End Sub

MichD
---------------------------------------------------------------
Avatar
Luc
Le 17/03/2013, MichD a supposé :
Si tu utilises la macro que je t'ai donnée,
essaie avec cette version de la macro pour
copier la plage de cellules d'Excel dans un
tableau Word.


Sub test()
Dim Rg As Range
Dim Wd As Object
Dim Dc As Object, C As Column
Dim T As Object, P As Row
Dim A As Integer, B As Integer
Dim Bb As Border

'Defined range to copy
With Worksheets("Feuil1")
Set Rg = .Range("A1:D5")
End With

Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add

Set T = Dc.Tables.Add(Range:Ü.Range, _
NumRows:=Rg.Rows.Count, _
NumColumns:=Rg.Columns.Count)

For A = 1 To Rg.Rows.Count
For B = 1 To Rg.Columns.Count
If IsNumeric(Rg(A, B)) = True Then
T.Cell(A, B).Range = Application.Round(Rg(A, B))
Else
T.Cell(A, B).Range = Rg(A, B)
End If
Next
Next

'To apply borders if necessary
With T
For Each C In .Range.Columns
C.Borders(wdBorderHorizontal).Visible = True
Next
For Each P In .Range.Rows
P.Borders(wdBorderVertical).Visible = True
Next
For A = -4 To -1
.Range.Borders(A) = True
Next
End With
End Sub

MichD
---------------------------------------------------------------


J'ai fait insertion "module" (j'ai aussi "module de classe")
puis collé les codes, changer le nom de la feuille et mis la bonne
plage.
Après je sais pas trop, j'ai enregistré puis je fais exécution F5,
là erreur de compilation: type défini par l'utilisateur non défini,
pas facile avec un débutant !
Luc
Avatar
MichD
OK, il y avait une référence à Word.

Essaie celle-ci.

'----------------------------------
Sub test()
Dim Rg As Range
Dim Wd As Object
Dim Dc As Object, C As Object
Dim T As Object, P As Object
Dim A As Integer, B As Integer
Dim Bb As Border

'Defined range to copy
With Worksheets("Feuil1")
Set Rg = .Range("A1:D5")
End With

Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add

Set T = Dc.Tables.Add(Range:Ü.Range, _
NumRows:=Rg.Rows.Count, _
NumColumns:=Rg.Columns.Count)

For A = 1 To Rg.Rows.Count
For B = 1 To Rg.Columns.Count
If IsNumeric(Rg(A, B)) = True Then
T.Cell(A, B).Range = Application.Round(Rg(A, B), 2)
Else
T.Cell(A, B).Range = Rg(A, B)
End If
Next
Next

'To apply borders if necessary
With T
For Each C In .Range.Columns
C.Borders(&HFFFFFFFB).Visible = True
Next
For Each P In .Range.Rows
P.Borders(&HFFFFFFFA).Visible = True
Next
For A = -4 To -1
.Range.Borders(A) = True
Next
End With
End Sub
'-------------------------------------

MichD
---------------------------------------------------------------