Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/01/2007, 11h06   #1
Invité de passage
 
Inscription : janvier 2007
Messages : 24
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 24
Points : 0
Points : 0
Par défaut [VBA-W] Faire une fusion dans un document ouvert

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.
zahui_eric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2007, 11h24   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2007, 11h50   #3
Invité de passage
 
Inscription : janvier 2007
Messages : 24
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 24
Points : 0
Points : 0
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
zahui_eric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2007, 12h07   #4
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
J'attends donc ton code.
Au fait, bienvenue sur le forum
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2007, 12h24   #5
Invité de passage
 
Inscription : janvier 2007
Messages : 24
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 24
Points : 0
Points : 0
Merci!
Voilà mon code:

Code :
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
zahui_eric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2007, 12h35   #6
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2007, 12h41   #7
Invité de passage
 
Inscription : janvier 2007
Messages : 24
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 24
Points : 0
Points : 0
Merci beaucoup man
zahui_eric est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h00.


 
 
 
 
Partenaires

Hébergement Web