Repousser les limites du publipostage...

YannYver

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je me permets de vous contacter car je bosse sur excel depuis un certain temps, mais je n'ai jamais réussi à bien lier la pratique sous excel à celle de word, d'où mon utilisation poussée du publipostage ces derniers temps.


En clair, j'ai un document Excel de type base de données à champs multiples du type | 'Nom' | 'Prénom' | 'Téléphone' | '...' |

Et j'aimerai qu'il me sorte de manière automatique une fiche sous word en utilisant un modèle de document charté pour chaque famille du type :

--
Famille 'Nom'

'Prénom1' | 'Téléphone1' | '...' |
'Prénom2' | 'Téléphone2' | '...' |
'Prénom3' | 'Téléphone3' | '...' |
'...' | '...' | '...' |
--

Et, pour couronner le tout, il faudrait que les enfants et les parents soient séparés en deux tableaux distincts, et que ces tableaux s'adaptent au nombre d’occurrences...


Je remercie d'avance la personne qui aura pitié de moi :) en attendant je retourne farfouiller sur la toile à la recherche de réponses...


A vous lire,
 

MichD

XLDnaute Impliqué
Re : Repousser les limites du publipostage...

Bonjour,

Un petit exemple, comment créer dans Word, une table représentant
une plage de donnée dans une feuille Excel. Maintenant, à toi
d'adapter le code selon tes besoins.


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

'Définir le nom de la feuille et la plage à copier
'dans le future fichier Word
With Worksheets("Feuil1")
Set Rg = .Range("A1:D5")
End With

'Création d'une instance de Word
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add

'Création d'une table où les données d'Excel seront copiées
Set T = Dc.Tables.Add(Range:=Dc.Range, _
NumRows:=Rg.Rows.Count, _
NumColumns:=Rg.Columns.Count)

'Copie des données
For A = 1 To Rg.Rows.Count
For B = 1 To Rg.Columns.Count
T.Cell(A, B).Range = Rg(A, B)
Next
Next

'Si tu veux appliquer des bordures horizontales
'et verticales dans le tableau de Word
With T
For Each C In .Range.Columns
C.Borders(-5).Visible = True
Next
For Each P In .Range.Rows
P.Borders(-6).Visible = True
Next
For A = -4 To -1
.Range.Borders(A) = True
Next
End With

End Sub
'---------------------------------------
 

Misange

XLDnaute Barbatruc
Re : Repousser les limites du publipostage...

Bonjour
le site faqword.com est une mine de renseignements sur le publipostage.
Sinon un tuto sur le sujet aussi ici
Ce lien n'existe plus

commence par maîtriser à fond les bases avant de te lancer dans des trucs + sioux, ça devient vite limité...
 

Discussions similaires

Statistiques des forums

Discussions
312 559
Messages
2 089 641
Membres
104 239
dernier inscrit
STEVEALL