IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

[VBA-W] Faire une fusion dans un document ouvert


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 28
    Points : 16
    Points
    16
    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.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    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+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    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

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    J'attends donc ton code.
    Au fait, bienvenue sur le forum
    A+

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    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

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    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+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Merci beaucoup man

Discussions similaires

  1. comment faire une recherche dans un document ?
    Par marzik dans le forum Langage
    Réponses: 1
    Dernier message: 29/08/2012, 14h15
  2. [XL-2003] faire une boucle dans une boucle VBA
    Par the-geut dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/04/2010, 15h06
  3. [VBA-E] Problème pour faire une boucle dans une userform
    Par Garlim dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/05/2007, 23h10
  4. Réponses: 2
    Dernier message: 08/02/2007, 10h20
  5. [XSL]faire une balise dans une balise??? (ComboBox)
    Par rastoix dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/05/2003, 08h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo