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 :

Fusion des documents par VBA


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Fusion des documents par VBA
    Bonjour

    Afin d'améliorer la qualité de notre travail, je souhaiterai que le document s'enregistre a la suite d'un fichier sélectionné (le fichier de la personne). Ainsi, dans le fichier receveur, nous aurions la liste des entretiens et des résultats de ces derniers sont systématiquement devoir faire un autre enregistrement. Est ce que cela est possible ?

    Merci d'avance ?

  2. #2
    Candidat au Club
    J'avais pensé à cette VBA


    avec une inputbox pour la localisation de l'enregistrement avec cette base :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub ConcatenerFichiers()
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    fd.Title = "Sélectionner les fichiers à concaténer"
    If fd.Show = -1 Then
    For Each vFichier In fd.SelectedItems
    With ActiveDocument.Content
    .Collapse Direction:=wdCollapseEnd
    .InsertBreak Type:=wdPageBreak
    .InsertFile FileName:=vFichier
    End With
    Next vFichier
    End If
    End Sub


    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fileToOpen = Application.GetOpenFilename("Tous les fichiers (*.*),*.*", , "SELECTIONNER UN REPERTOIRE PUIS CLIQUER SUR OUVRIR OU ANNULER", True)
    If fileToOpen = False Then drapeau = 1: Exit Sub
    nomFichiers = Dir("")
    repertoireFichiers = CurDir 'récupére le chemin du répertoire

  3. #3
    Expert éminent sénior
    Citation Envoyé par Theyoshi Voir le message

    Bonjour,

    Votre procédure ConcatenerFichiers fonctionne. En revanche, vous devriez grouper vos 4 shapes dans votre document modèle pour qu'ils ne se retrouvent pas en vrac dans le document de synthèse.

    Nb : GetOpenFilename ne s'utilise pas dans Word.

    Sinon, perso, j'aurais plutôt fait cette gestion sous Excel avec une table des entretiens à partir de laquelle on accédait aux différents fichiers par un lien hypertexte et j'aurais sauvegardé les fichiers de chaque personne dans un zip.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  4. #4
    Candidat au Club
    Bonjour

    Un fichier excel serai trop complexe à utiliser pour mon équipe (qui ne connait pas la différence entre windows 10 et un lecteur dvd)

    Si getopenfilename ne fonctionne pas, quel serait l'équivalent ?

  5. #5
    Expert éminent sénior
    Citation Envoyé par Theyoshi Voir le message

    Votre première procédure fonctionne, que souhaitez-vous de plus ?
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  6. #6
    Candidat au Club
    J'ai évolué mon code en ceci :

    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
    Sub ConcatenerFichiers()
     
    Dim finput As FileDialog
    Dim Chemin As String
     
    Set finput = Application.FileDialog(msoFileDialogOpen)
    finput.Show
     
        Chemin = finput.SelectedItems(1)
     
    MsgBox "Le chemin est " & Chemin, vbInformation, "Choix du dossier"
     
        If finput.Show = -1 Then
     
        For Each vFichier In finput.SelectedItems
     
            With ActiveDocument.Content
            .Collapse Direction:=wdCollapseEnd
            .InsertBreak Type:=wdPageBreak
            .InsertFile FileName:=vFichier
            End With
     
        Next vFichier
     
        End If
     
    End Sub


    Il demande bien le fichier à fusionner mais au final, il ne se passe rien... Des idées ?

  7. #7
    Expert éminent sénior
    Citation Envoyé par Theyoshi Voir le message

    Votre finput.Show ne sert à rien.

    La procédure est identique à la première et le fichier est correctement intégré.

    Je décroche de cette discussion.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  8. #8
    Candidat au Club
    Si vous décrochez c'est que je ne suis pas clair. Je ne maîtrise pas la VBA, ces morceaux viennent d'internet, d'ou mon hésitation.

    Si le code vous parait bon, il n'en est pas moins que mon document ne s'ajoute pas à ceux déjà établi malgré la macro.

  9. #9
    Expert éminent sénior
    Citation Envoyé par Theyoshi Voir le message

    Mettez un exemple en ligne : 1 fichier de synthèse d'où vous lancez la macro et deux fichiers à intégrer non confidentiels. Zipez vos fichiers pour les poster.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  10. #10
    Candidat au Club
    Vous trouverez ce document en premier message. C'est un document "model" qui doit être enregistré à la suite d'autres documents (d'où la demande de chemin d’accès).

    Je récapitule ce que je cherche :
    J'ouvre le document (premier message), je le valide par un bouton macro, il m'est demandé à la suite de quel document je veux l'enregistrer. A chaque utilisation, le document s'ajoute à la suite de ceux déjà fusionnés.

  11. #11
    Expert éminent sénior
    Citation Envoyé par Theyoshi Voir le message

    Je récapitule ce que je cherche :
    J'ouvre le document (premier message), je le valide par un bouton macro, il m'est demandé à la suite de quel document je veux l'enregistrer. A chaque utilisation, le document s'ajoute à la suite de deux déjà fusionnés.
    C'est l'inverse. Le fichier est le fichier de synthèse, et c'est le fichier que vous voulez joindre avec la boite de dialogue que vous ajoutez à la fin de votre document. Si vous avez fait plusieurs essais, votre document d'essai doit contenir déjà plusieurs pages.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  12. #12
    Candidat au Club
    Sauf qu'il n'y a pas d'enregistrement. Le fichier qui recoit le nouvel enregistrement reste identique.

  13. #13
    Expert éminent sénior
    Citation Envoyé par Theyoshi Voir le message
    Sauf qu'il n'y a pas d'enregistrement. Le fichier qui recoit le nouvel enregistrement reste identique.
    Lorsque vous allez ouvrir le fichier .docm, cliquez sur le bouton rouge dans la barre d'accès rapide pour lancer la macro.

    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  14. #14
    Candidat au Club
    Merci beaucoup