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 :

Fusion Word: deux fichiers de données dans un seul document


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Fusion Word: deux fichiers de données dans un seul document
    Bonjour,

    Je ne suis pas trés doué dans la programmation...

    J'ai deux fichiers de données:
    - un fichier Excel contenant la liste des noms, fonctions et services
    - un fichier du type CSV contenant les données
    à integrer dans la macro d'un modèle (dot ou doc).
    (il peut y avoir plusieurs modèles par service mais ce qui m'interesse est la récupération des noms par service de façon à n'intervenir que sur un seul fichier Excel pour les mouvements)

    Comme il y a plusieurs services et plusieurs noms, on insere les noms et leurs intitulés dans les entêtes (un peu comme la liste de medecins dans un service).
    Je rappelle: comme il y a du mouvement, le fichier Excel est la base qui permet d'être à jour.
    Cette méthode pourrait être automatiquement fusionnée avec un point commun entre les deux fichiers (les services ont leur numéro).

    J'aimerai savoir comment integrer les deux fichiers de données dans un document aprés fusion CAD le fichier CSV contient un numéro de service qui permet de récuperer la liste des noms et leurs informations depuis le fichier Excel pour l'entête ?

    J'espère d'être précis dans mes explications ...
    Merci pour votre aide!
    Cordialement,
    David

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Pourquoi deux fichiers ?
    Et pourquoi un fichier excel et un fichier csv.

    As-tu un exemple des données contenues et l'endroit où tu veux les mettre ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Excellente question!
    Bonjour,

    Merci de votre rapidité,

    C'est tout simplement que c'est la direction des ressources humaines qui gere le fichier Excel, je n'ai qu'un droit d'accès en lecture (de toute façon, le contenu m'interesse, pas le reste).
    Le contenu est le suivant:
    Nom_Prenom,fonction,N°_Service,Libelle_service

    Le chemin est connu mais une copie du xls peut-être effectué par le progiciel ou la macro lui-même dans le /temp local du progiciel!

    Et le fichier de type CSV est issu du progiciel spécifique auquel je ne suis que l'utilisateur...
    Ceci est un gros fichier au format CSV (separateur ";")...
    Copié dans le /temp local

    Pour ça, deux lignes contenant .Path et .Name suffiraient!
    Ce qui fait que j'ai un emplacement à récuperer et un autre pour regrouper l'ensemble de données ...
    Voici la macro qui fonctionnait pour le progiciel et le fichier CSV et j'aimerai integrer le fichier XLS en mettant la ligne du style pour :

    CSV.Numero_service = XLS.Numero_service alors afficher XLS.Numero_Service.liste_noms


    --------------------------------------------------------------------------
    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
     
    Sub AutoOpen()
    '
    ' AutoOpen Macro
    '
     
        Dim o As Object
        Dim strNomMod As String
        Dim strNomModsExt As String
        Dim strPathDef As String
     
        Set o = ActiveDocument
        strNomMod = o.Name
        strNomModsExt = Left(strNomMod, InStr(strNomMod, ".") - 1)
        strPathDef = ActiveDocument.Path
        fil$ = strPathDef + "\" + strNomMod
     
        ActiveDocument.MailMerge.OpenDataSource Name:= _
            strPathDef + "\" + strNomModsExt + ".csv", ConfirmConversions:=False, ReadOnly:=False _
            , LinkToSource:=True, AddToRecentFiles:=False, PasswordDocument:="", _
            PasswordTemplate:="", WritePasswordDocument:="", WritePasswordTemplate:= _
            "", Revert:=False, Format:=wdOpenFormatAuto
     
        With ActiveDocument.MailMerge
            .Destination = wdSendToNewDocument
            .MailAsAttachment = False
            .MailAddressFieldName = ""
            .MailSubject = ""
            .SuppressBlankLines = True
            With .DataSource
                .FirstRecord = wdDefaultFirstRecord
                .LastRecord = wdDefaultLastRecord
            End With
            .Execute Pause:=False
        End With
        'MsgBox (strPathDef + "\f_" + strNomModsExt + ".doc") --> ligne vérification chemin+fichier
        ActiveDocument.SaveAs (strPathDef + "\f_" + strNomModsExt + ".doc")
        o.Close (wdDoNotSaveChanges)
     
    End Sub
    --------------------------------------------------------------------------

    J'espère que tu comprendras pourquoi!

    Cordialement,
    David

    ps: j'oubliais, il s'agit encore de la version Office 2003! Je ne crois pas que l'on passera à la version 2007 de sitôt!

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Si tu pouvais détailler tes besoins un peu mieux, parce que là c'est juste un publipostage en Word.

    Et au vu de ta question, je ne pense pas que ce soit ce que tu veux obtenir.

    Les données, doivent elles être triée en fonction du service, ou sont-elles toujours issues de la même plage Excel.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Si tu pouvais détailler tes besoins un peu mieux, parce que là c'est juste un publipostage en Word.

    Et au vu de ta question, je ne pense pas que ce soit ce que tu veux obtenir.

    Les données, doivent elles être triée en fonction du service, ou sont-elles toujours issues de la même plage Excel.
    C'est dans le XLS que les données doivent être triées en fonction du service et extraite en fonction de CSV.numero_service (il n'y en a qu'un). En gros, c'est extraire l'ensemble de données ayant le N° service comme dénominateur commun avant de lancer le publipostage comme tu dis!
    Ca veut dire pour moi que je doive extraire les données CSV en premier et le XSL en deuxième avec la condition déjà cité plus haut pour réecrire l'ensemble de données extraites dans un autre fichier texte, c'est bien ça ?

    Désolé de ne pas être précis mais c'est vraiment ça que je voulais et je crois que c'est suffisamment précis !

    @+

Discussions similaires

  1. [XL-2010] Pb Macro pour ouvrir un fichier Word et copier des données dans des signets
    Par MPRIBOM dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/10/2014, 14h00
  2. [WD-2007] Multi-fusion à l'aide d'un tableau dans un seul document
    Par apt dans le forum Word
    Réponses: 17
    Dernier message: 08/04/2013, 12h40
  3. Tableau à deux dimensions et données dans un fichier texte
    Par Roud9 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 12/02/2011, 19h53
  4. fusion de deux fichiers EXCEL dans un 3ième
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/07/2007, 18h59
  5. [Conception] connexion de deux bases de données dans une page en php
    Par leclone dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/04/2007, 14h59

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