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

Excel Discussion :

Macro Excel, transfert données vers template Word


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Macro Excel, transfert données vers template Word
    Salut tout le monde,

    Je suis actuellement bloqué dans le développement d'une macro pour transférer des données d'une feuille Excel vers un modèle Word avec signet.
    Pour l'instant, le principal de la macro fonctionne, les données sont bien transférées vers le Template mais j'ai plusieurs problèmes que je n'arrive pas à résoudre depuis hier, et j'ai beaucoup essayé depuis. Ci-dessous la liste des points me bloquant ( vous verrez dans mon code en commentaire mes différents essais.)
    1/ Lorsque je veux enregistrer le document au format PDF, ma macro gardera les informations collées dans le modèle après avoir fermé le docx, par conséquent, le prochain fichier pdf aura les informations de deux lignes au lieu d'une. J'ai essayé d'utiliser une fonction d'exportation mais j'ai eu le même résultat. Avez-vous une idée de la façon dont je pourrais modifier mon code pour laisser le modèle vide après l'enregistrement dans un fichier pdf ?

    2/ Pour nommer le fichier PDF, j'ai défini une variable différente mais cela semble ne pas fonctionner, en effet, il semble que le nom soit défini avec les informations des cellules N-1 au lieu des informations de la cellule N, aucune idée à résoudre il ? De plus, je n'arrive pas à comprendre comment mettre les informations YEAR dans le nom du fichier (j'ai une erreur de compatibilité, je pense que c'est à cause du format des données)

    3/ Pour finir, je souhaite mettre en place un SI & Alors pour ne prendre en compte que la ligne concernant l'année en cours, je n'ai pas trouvé comment le faire fonctionner efficacement, pourriez-vous me faire une suggestion ?

    Vous pouvez trouver mon code VBA ici


    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
    75
    76
    77
    78
    Macro1 Macro
    '
    Option Explicit
     
    'Filepath to the data and template
    Const FilePath As String = "C:\Users\aguy\OneDrive\Desktop\fiches\Templates\" & "Template macro.docx"""
    Dim wd As New Word.Application
    Dim NomCell As Range
     
    Sub CreateWordDocuments()
    'Defini a counter
    Dim i As Integer
    Dim prenom As String
    Dim nom As String
    Dim interviewyear As Date
    i = 0
    'create copy of Word in memory
    Dim doc As Word.Document
    wd.Visible = True
    Dim NomRange As Range
     
    'create a reference to all the people
    Range("A2").Select
    Set NomRange = Range(ActiveCell, ActiveCell.End(xlDown))
    'for each person in list
    For Each NomCell In NomRange
     
    'open a document in Word
     
    Set doc = wd.Documents.Open("C:\Users\aguy\OneDrive\Desktop\fiches\Templates\" & "Template macro.docx")
     
    'go to each bookmark and type in details
    'If Year(Cells(NomCell, 14)) >= Year(Date) Then
     
    CopyCell "Age", 4
    CopyCell "Ancienneté", 6
    CopyCell "Projet", 9
    CopyCell "Grade", 10
    CopyCell "Rôle", 11
    CopyCell "Date_de_départ_prévue", 12
    CopyCell "Carrière_manager", 13
    CopyCell "Motif_départ", 16
    CopyCell "Motif_départ_2", 17
    CopyCell "Points_positifs_expérience", 18
    CopyCell "Point_négatifs_expérience", 19
    CopyCell "Situation_future_entreprise_ou_autre", 20
    CopyCell "Commentaire_RRH", 21
    CopyCell "Prénom", 2
    CopyCell "Site", 7
    CopyCell "Service_line", 8
    CopyCell "Nom", 1
    CopyCell "Date_entretien_de_départ", 15
    CopyCell "RRH_entretien", 16
     
    prenom = Cells(NomCell, 2).Value
    nom = Cells(NomCell, 3).Value
    'interviewyear = Cells(NomCell, 15).Date
     
    'save and close this document
    doc.SaveAs2 FilePath & nom & " " & prenom & interviewyear & ".pdf", wdExportFormatPDF
    doc.Close
    i = i + 1
     
    Next NomCell
    wd.Quit
     
    MsgBox "The work is done, " & i & "  files had been created in " & FilePath & "!"
     
    'End If
    End Sub
     
    Sub CopyCell(BookMarkNom As String, ColumnOffset As Integer)
     
    'copy each cell to relevant Word bookmark
    wd.Selection.Goto What:=wdGoToBookmark, Name:=BookMarkNom
    wd.Selection.TypeText NomCell.Offset(0, ColumnOffset).Value
     
    End Sub


    J'espère sincèremment que la communauté pourra m'aider ! C'est un projet important de je bloque malgré mes nombreuses recherches et essaies,c'est mon premier code VBA.

    Merci et bonne journée

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Points : 145
    Points
    145
    Par défaut
    Bonjour,

    1/J'ai une macro sous Word qui permet d'enregistrer le document sous PDF et elle ne garde pas les donnés car je ferme l'application sans sauvegarder les changements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
              CheminCompletExport = "C:\Users\Desktop\" & NomSansExtension(.Name) & ".docm"
             .ExportAsFixedFormat OutputFileName:=CheminCompletExport, ExportFormat:=wdExportFormatwd, OpenAfterExport:=False
     
        End With
        ActiveWindow.Close SaveChanges:=wdDoNotSaveChanges

    2/ La même macro de définir le nom avec l'emplacement des mots du document Word grâce à une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function NomSansExtension(ByVal NomDoc As String) As String
     
    Dim I As Integer, PositionPoint As Integer
     
        For I = Len(NomDoc) To 1 Step -1
            If Mid(NomDoc, I, 1) = "." Then
               PositionPoint = I
               Exit For
            End If
        Next I
        NomSansExtension = ActiveDocument.Words(10) & "-" & ActiveDocument.Words(12)
     
    End Function
    Il faut adapté la partie :ActiveDocument.Words(10)

    3/ peux tu mettre une capture de ton fichier Excel ? pour voir la structure des années ?

    J'espère avoir pu t'aider (c'est un code que j'ai écris sur une macro Word mais facilement adaptable en Excel) .

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour votre réponse. Votre aide est vraiment précieuse !

    Pour le 1/ en adaptant ça marche parfaitement !
    Pour le 2/ mon problème se situe plutôt sur la variable de l'année qui semble ne pas fonctionner, le format est non compatible visiblement.

    Pour le 3/ je te met mon Excel en pièce jointe, ce sera surement plus simple !

    Merci

    TRY1.xlsmTRY1.xlsm

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Points : 145
    Points
    145
    Par défaut
    2/ ton année doit être sous format jj/mm/aaaa met la sous format jj-mm-aaaa ou jj.mm.aaaa

    3/je ne préfères pas ouvrir de fichier Excel désolé

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Aucun problème,
    Je me suis inspiré à partir de ta réponse et ça semble marcher correctement ! J'ai même pu mettre en place ma boucle if !
    Merci beaucoup pour ton aide

Discussions similaires

  1. Macro Excel pour transférer vers un doc word
    Par Jsoussouy dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/03/2017, 14h52
  2. [XL-2013] Macro extraction de données vers une autre feuille Excel
    Par ImBb2 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/04/2015, 19h25
  3. [XL-2010] Macro excel, exporter données excel dans un document word
    Par mika84500 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/04/2013, 14h34
  4. VBA Excel : Transfert listbox vers Excel
    Par Secco dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 27/04/2008, 23h33
  5. Macro Excel : infos dans un signet Word
    Par ML0808 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/03/2008, 18h28

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