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 :

Codage VBA scindement lettre fusionnées


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Codage VBA scindement lettre fusionnées
    Bonjour,

    Je débute en VBA et travaille sous Word 2003 en réseau.

    Je suis actellement en train de rédiger un code afin de m'aider dans le scindement des lettres fusionnées. En effet, chaque destinataire se verra envoyer une lettre de 4 pages et le destinataire suivant les quatres pages suivantes etc... Mon but est donc de fusionner séparément chaque lettre de chaque destinataire dans un répertoire dynamique.

    Voici une ébauche de mon code :

    Sub lettrefusionsepares()
    '
    ' testpublipost Macro
    ' Macro enregistrée le 27/06/2014 par jonathan.frumholtz
    ' Déclaration des variables
    Dim iR As Integer
    Dim i As Integer
    Dim oDoc As Document
    Dim DocName As String
    Dim oDS As MailMergeDataSource

    Dim Repertoire As FileDialog

    Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
    Repertoire.Show

    MsgBox Repertoire.SelectedItems(1)
    Chemin = Repertoire.SelectedItems(1)

    ' Affectation des objets
    Set oDoc = ActiveDocument
    Set oDS = oDoc.MailMerge.DataSource

    iR = oDoc.MailMerge.DataSource.RecordCount
    Debug.Print iR
    For i = 1 To iR
    With oDoc.MailMerge
    'Définition du premier et dernier enregistrement
    .DataSource.FirstRecord = i

    .DataSource.LastRecord = i
    ' Envoi des données dans un nouveau document
    .Destination = wdSendToNewDocument
    ' Exécution du publipostage
    .Execute
    ' Actualisation de l'enregistrement pour la sauvegarde
    .DataSource.ActiveRecord = i
    'Utilisation de deux champs pour obtenir le nom du document
    DocName = .DataSource.DataFields(1).Value
    DocName = DocName & "-" & .DataSource.DataFields(2).Value
    Debug.Print DocName; i
    End With
    ' Sauvegarde du document publiposté
    With ActiveDocument
    .SaveAs Chemin & DocName & ".doc"
    '.PrintOut
    .Close
    End With
    Next i


    End Sub


    Cependant, j'ai ce message d'erreur qui apparait :
    "Erreur d'execution 5487 Impossible de terminer l'enregistrement : erreur d'autorisation d'accès au fichier. (T:\...\nom choisi dans le répertoire)

    Auriez vous des modifications à apporter à ce code ?

    Cordialement

    Merci d'avance

    Joe

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Code balisé
    Bonsoir, voici le code balisé :

    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
    Sub lettrefusionsepares()
     
     
    ' Déclaration des variables
     
    Dim iR As Integer
    Dim i As Integer
    Dim oDoc As Document
    Dim DocName As String
    Dim oDS As MailMergeDataSource
    Dim Repertoire As FileDialog
     
    Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
    Repertoire.Show
     
    MsgBox Repertoire.SelectedItems(1)
    Chemin = Repertoire.SelectedItems(1)
     
    ' Affectation des objets
     
    Set oDoc = ActiveDocument
    Set oDS = oDoc.MailMerge.DataSource
     
    iR = oDoc.MailMerge.DataSource.RecordCount
    Debug.Print iR
    For i = 1 To iR
    With oDoc.MailMerge
     
    'Définition du premier et dernier enregistrement
     
    .DataSource.FirstRecord = i
    .DataSource.LastRecord = i
     
    ' Envoi des données dans un nouveau document
     
    .Destination = wdSendToNewDocument
     
    ' Exécution du publipostage
     
    .Execute
     
    ' Actualisation de l'enregistrement pour la sauvegarde
     
    .DataSource.ActiveRecord = i
     
    'Utilisation de deux champs pour obtenir le nom du document
     
    DocName = .DataSource.DataFields(1).Value
    DocName = DocName & "-" & .DataSource.DataFields(2).Value
    Debug.Print DocName; i
    End With
     
    ' Sauvegarde du document publiposté
     
    With ActiveDocument
    .SaveAs Chemin & DocName & ".doc"
    .Close
    End With
    Next i
     
    End Sub
    Cordialement
    Joe

  3. #3
    Membre éclairé Avatar de Souriane
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2009
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2009
    Messages : 541
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    À mon avis, l'erreur est à la ligne 56.

    À remplacer par ceci pour qu'il y ait un backslash entre le nom du chemin et le nom du fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .SaveAs Chemin & "\" & DocName & ".doc"
    Bonne chance!

    Souriane
    __________________________________
    Une question bien posée est à moitié résolue!

    Merci de ne pas oublier de mettre RÉSOLU quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

Discussions similaires

  1. codage vba pour rechercher une valeur selon 2 critères
    Par sims92.66 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/10/2011, 21h29
  2. petit codage vba
    Par DAOSOCAM dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2011, 21h53
  3. Réponses: 2
    Dernier message: 05/04/2010, 17h42
  4. [VBA-E] lettre identique dans onglet
    Par guismoman33 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 07/02/2007, 11h02
  5. [VBA-W] Cellules fusionnées
    Par TheEwook dans le forum VBA Word
    Réponses: 1
    Dernier message: 24/04/2006, 14h06

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