Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Publipostage

linossier

XLDnaute Nouveau
Bonjour, Je gère la comptabilité d'un club d'investisseurs. Toutes les années, je fais une lettre récapitulant la somme gagnée ou perdue par chacun, les millièmes détenus.... Pour cela, je passe par un publipostage Word à partir d'un tableau Excel. Tous ces nombres ayant des formats différents je passe par la formule suivante : { MERGEFIELD "F13" \# «# ##0,00 €} par exemple. Mais des fois cela fonctionne bien et quelquefois avec la même formule j'ai un nombre farfelu. Cela fonctionne mal uniquement avec les nombres au-dessus de 1000. exemple : 1 059.65 devient 60.65 €, alors que 560.55 devient 560.55 €. Le chiffre des milliers s'additionne comme une unité. Ce qui est incroyable, c'est que le même tableau fonctionne plusieurs fois normalement puis, sans que j'intervienne si ce n'est d'ouvrir ou fermer le fichier ça ne fonctionne plus!!!!! Quelqu'un saurait-il me solutionner ce problème? Je suis désolé mais il ne m'est pas possible de faire passer les éléments pour des raisons évidentes de confidentialité. Si vraiment il y a besoin, je ferai un faux tableau mais c'est pas mal de travail car je dois supprimer les infos nominatives et il y a une quarantaine de pages dans le fichier. Merci à tous pour votre écoute. Michel
 
Dernière édition:

Eric KERGRESSE

XLDnaute Occasionnel
Bonjour,

Désolé pour cette réponse tardive, mais je ne pense pas pouvoir vous aider non plus sur votre solution de publipostage.
En revanche, vous pourriez éditer vos documents directement depuis votre fichier Excel en consacrant un onglet à cet effet, formaté comme votre document Word. C'est comme cela que je procède pour mes devis et factures.
Une macro serait seulement nécessaire pour éditer l'ensemble de vos destinataires, en changeant le nom du destinataire sur l'onglet.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

Juste par curiosité et sans être sur que le demandeur repasse par ici.

Je n'arrive pas à reproduire le phénomène (voir ci-dessous)



Les données dans Excel sont au format :

Nombre / Nombre de décimales : 2 / Utiliser le séparateur de milliers
 

Eric KERGRESSE

XLDnaute Occasionnel
Bonjour JM,

C'est un test ?

Soit un tableau structuré "t_Items" comme indiqué.

VB:
Sub InsererUnTableauAuFormatMonetaireDansWord()

Dim I As Integer
Dim MonTableau As Range
Dim Chemin As String

Dim WordApp As Word.Application    ' As Object
Dim WordDoc As Word.Document       ' As Object
 
    Chemin = ThisWorkbook.Path & "\Essai"
    Set MonTableau = Range("t_Items")
    MonTableau.Columns(2).NumberFormat = "$#,##0.00_);($#,##0.00)"
    
    Set WordApp = CreateObject("word.application")
    WordApp.Visible = True
    Set WordDoc = WordApp.Documents.Add
    
    MonTableau.Copy
    WordDoc.Range.Paste
    WordDoc.SaveAs Filename:=Chemin, FileFormat:=12
    
  '  WordDoc.Close savechanges:=wdSaveChanges
  '  WordApp.Quit
    
    MonTableau.Columns(2).NumberFormat = "#,##0.00"
    
    Set WordDoc = Nothing
    Set WordApp = Nothing
    Set MonTableau = Nothing

End Sub
 

Staple1600

XLDnaute Barbatruc
Bonjour Eric


Il s'agit d'un test de publipostage.
Je pensais que la copie d'écran était explicite (cf Répertoire6 dans le nom du fichier)

Je reprécise donc ma réponse

• base de données Excel avec deux colonnes :ITEMS et MONTANTS

Et dans WORD: Publipostage/Annuaire
=> Deux champs de fusion

Comme je le disais, je ne reproduis pas le phénomène.

Mes montants sont bien formatés dans Word.
 

Eric KERGRESSE

XLDnaute Occasionnel
???
Alors je n'ai rien compris et j'en suis désolé.

Le code proposé permet de créer un publipostage depuis Excel. Si les items doivent apparaître séparément dans un document, il suffit de modifier le code en créant une boucle générant un document à partir d'un modèle contenant deux signets et d'injecter les données dans ceux-ci.

Bien à vous.
 

Staple1600

XLDnaute Barbatruc
Re

@Eric KERGRESSE
Je me suis arrêté sur ceci
Pour cela, je passe par un publipostage Word à partir d'un tableau Excel.
et cela
Mais des fois cela fonctionne bien et quelquefois avec la même formule j'ai un nombre farfelu. Cela fonctionne mal uniquement avec les nombres au-dessus de 1000. exemple : 1 059.65 devient 60.65 €, alors que 560.55 devient 560.55 €
J'essaie donc de reproduire ce "bug" en faisant un publipostage manuel depuis Word en guise de test.

Par commodité et gain de place, j'ai choisi pour le test Annuaire au lieu de Lettres

Ce qui donne comme résultat la copie d'écran du message#3

Donc ce que décrit linossier ne se produit pas lors de mon test

C'est pareil si je fais un publipostage en choisissant Lettres

Les montants sont correctement formatés dans les deux cas.


Est-ce que cette fois, on s'est compris ?
 

Eric KERGRESSE

XLDnaute Occasionnel
Re,

Je n'ai pas réussi non plus à reproduire le problème (formule lettre). Les décimales qui apparaissaient avec une dizaine de chiffres ont été corrigées avec le commutateur, bien que dans la base Excel, les valeurs étaient au plus à deux décimales.
En revanche, j'ai dû mettre un taquet de tabulation entre les deux champs pour éviter le décalage indiqué sur le vidage d'écran.



Pour revenir à la demande initiale, je m'interroge sur le nom du champ utilisé "F13".
 

Staple1600

XLDnaute Barbatruc
Re

@Eric KERGRESSE
Comme dirait France
Il jouait du champ de fusion (rarement debout)
C'est peut-être un détail pour vous
Mais pour moi, ça veut dire beaucoup


J'aurais aimé capter de quel décalage tu parles (juste pour ma gouverne)

Tant pis.

A+ sur d'autre fils poussiéreux ... ou pas
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…