Bonjour, je suis nouveau sur le forum et novice en vba.
Je voudrais créer un code vba pour word qui me permet de faire une fusion dans un document word ouvert sans effacer le texte déjà présent.
Je vous remercie.
Bonjour, je suis nouveau sur le forum et novice en vba.
Je voudrais créer un code vba pour word qui me permet de faire une fusion dans un document word ouvert sans effacer le texte déjà présent.
Je vous remercie.
Quelques précisions sont requises![]()
As-tu un document principal avec les champs de fusion ?
La fusion doit se faire avec quel type de base de données ? Excel ? Word ? Access ?
Quel document est-il ouvert ?
A+
Salut!!
Oui j ai un doc principaleet ma base de donnée est word.
Le problème est que j'ai beaucoup de d'information dans ma base de donnée. Je m'explique: J'ai 421 enregistrements. Quand je fais une fusion sur tous les enregistrements, j'ai un blocage à partir de l'enregistrement 233. Par contre je peux faire trois fusions(des enregistrement 1 à 200, des enregistrements 201 à 400 puis des enregistrement 401 à 421) pour avoir mes 421 enregistrements.
Je voudrais donc faire un code vba qui me permet de faire cette fusion par étape mais je veux que les trois fusions se fassent dans le même document word ou dans trois documents différents.
J'ai fait un premier code pour faire une fusion en deux étapes.J'arrive à avoir ma première fusion mais pour la seconde fusion j'ai un document vide.
Merci pour ton aide![]()
J'attends donc ton code.
Au fait, bienvenue sur le forum![]()
A+
Merci!
Voilà mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 Public Sub MAIN() Dim SourceName$ SourceName$ = ActiveDocument.Variables("FusionSource").Value If WordBasic.MsgBox("La fusion va être effectuée à partir du fichier source: " + SourceName$, "Fusion", 33) = -1 Then With ActiveDocument.MailMerge .OpenDataSource _ Name:=SourceName$, _ LinkToSource:=True, AddToRecentFiles:=False, _ Connection:="" End With With ActiveDocument.MailMerge .Check .Destination = 0 With .DataSource .FirstRecord = 1 .LastRecord = 5 End With .SuppressBlankLines = False .MailSubject = texte .MailAsAttachment = False .MailAddressFieldName = texte .Execute End With Documents.Add 'Ajoute un document vide With ActiveDocument.MailMerge 'Transformation du document vide créé en document principal de publipostage .MainDocumentType = wdFormLetters .OpenDataSource _ Name:=SourceName$, _ LinkToSource:=True, AddToRecentFiles:=False, _ Connection:="" .ViewMailMergeFieldCodes = False End With With ActiveDocument.MailMerge .Check .Destination = 0 With .DataSource .FirstRecord = 6 .LastRecord = 10 End With .SuppressBlankLines = False .MailSubject = texte .MailAsAttachment = False .MailAddressFieldName = texte .Execute end with Call SupprimerArobase.MAIN End If Call FermerModele.MAIN End Sub
A tte
Quand tu ajoutes un document vide, aucun champ de fusion n'est en place. Si tu réalises une fusion, aucun champ n'est renseigné, c'est normal.
pour réaliser plusieurs fusions, tu dois utiliser le même document principal à chaque fois, une fois de 1 à 233, puis de nouveau avec 234 à ... etc.
A chaque fusion est créé un document résultat de la fusion.
Je n'ai plus le temps de corriger ton code mais il y aura bien quelqu'un pour t'aider. Vraiment désolé. Je regarderai ce soir si tu t'en es sorti.
Bonne chance
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager