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

Macros et VBA Excel Discussion :

Transformation information tableau excel en feuille word


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Responsable Qualité Système
    Inscrit en
    Février 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable Qualité Système
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 2
    Par défaut Transformation information tableau excel en feuille word
    Bonjour,

    Je vais essayer de bien m'exprimer.
    J'ai un tableau excel avec en ligne des numéros de procèdure et en colonne le nom des personnes qui l'ont en leur possession.
    Je souhaiterai créer un bouton qui transformerait toutes les croix que j'ai mis dans mes colonnes dans une feuille word/excel avec le nom des personnes sachant que le nom des personnes changent en fonction des procèdures .

    J'aimerai également que le nom du document, le numéro et la version soit reportés.

    Je ne sais pas si je suis très claire.

    Merci pour votre aide,

  2. #2
    Membre confirmé
    Homme Profil pro
    Gestion comptable - Spécialiste Excel, Vba, - Débutant MySql, Javascript, Python, Php
    Inscrit en
    Mars 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Gestion comptable - Spécialiste Excel, Vba, - Débutant MySql, Javascript, Python, Php

    Informations forums :
    Inscription : Mars 2010
    Messages : 48
    Par défaut script de base pour convertir un tableau excel vers word
    Bonjour,

    Le script ci-dessous crée un document Word au format template (ça peut être changé vers .docx je pense mais le docx crée des erreurs, ça fait longtemps que je n'ai pas utilisé ce script). Il offre quelques options sur le format au niveau de Word. Mais s'il y a beaucoup de données, le temps d'exécution sera long (selon le cpu)...

    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
    Sub Data2Word()
     
    'Remember: this code requires a referece to the Word object model // (ajouter une reférence vers l'API WORD) ou bien utiliser la méthode CREATEOBJECT
     
        'dimension some local variables
        Dim rng As Range                    'our source range
        Dim wdApp As New Word.Application   'a new instance of Word
        Dim wdDoc As Word.Document          'our new Word document
        Dim t As Word.Range                 'the new table in Word as a range
        Dim myWordFile As String            'path to Word template
     
     
        'initialize the Word template path
        'here, it's set to be in the same directory as our source workbook
        myWordFile = ThisWorkbook.Path & "\DocWithTableStyle.dot"
     
        'get the range of the contiguous data from Cell A1
        Set rng = Range("A1").CurrentRegion
        'you can do some pre-formatting with the range here
        rng.HorizontalAlignment = xlCenter  'center align the data
        rng.Copy                            'copy the range
     
        'open a new word document from the template
        Set wdDoc = wdApp.Documents.Add(myWordFile)
     
        Set t = wdDoc.Content               'set the range in Word
        t.Paste                             'paste in the table
        With t                              'working with the table range
            .Style = "GreenBar"             'set the style created for the table
            'we can use the range object to do some more formatting
            'here, I'm matching the table with using the Excel range's properties
            .Tables(1).Columns.SetWidth (rng.Width / rng.Columns.Count), wdAdjustSameWidth
        End With
     
        'until now the Word app has been a background process
        wdApp.Visible = True
        'we could use the Word app object to finish off
        'you may also want to things like generate a filename and save the file
        wdApp.Activate
     
    End Sub

    Le script ci-dessous est une routine qui prend un paramètre v de type variant je pense alors ça peut être un tableau de valeurs ou une plage de données selon ce qui convient

    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
    Sub my_create_word_table(v)
    Dim wApp As Object
    Dim wDoc As Object
    Dim i As Long, a As Long, x
    ReDim z((UBound(v, 1) + 1) * (UBound(v, 2) + 1) - 1)
     
    For Each x In v
    z(i) = x
    i = i + 1
    Next
    Set wApp = CreateObject("Word.Application")
    Set wDoc = wApp.Documents.Add
    wDoc.Range(0, 0).InsertAfter Join(z, vbTab)
    wDoc.Range(0, wDoc.Range.End).ConvertToTable _
    vbTab, UBound(v, 1) + 1, UBound(v, 2) + 1
    wApp.Visible = True
    End Sub
    Avec les différentes instructions de ces scripts, le passage en v d'un tableau excel qui ne contient que les x et le tour est joué. Cependant, je ne suis pas sûre de comprendre que le nom des personnes changent en fonction des procédures. Pour lier Word à Excel (de style liaison de classeur à classeur), c'est un peu plus délicat. Reporter le nom du document c'est facile, le nom de la version aussi (ils peuvent être dans une cellule). Je suppose que vous connaissez déjà les macros vba.

    cordialement
    Pascal

  3. #3
    Nouveau candidat au Club
    Femme Profil pro
    Responsable Qualité Système
    Inscrit en
    Février 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable Qualité Système
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 2
    Par défaut
    Merci beaucoup pour votre réponse.
    Je suis assez novice par rapport au code VBA, il faut que je prenne un peu de temps pour comprendre vos codes.
    Je vous laisse un exemple assez basique de word et excel.
    Je sais que je peux faire un formulaire pour le nom de l'instruction, la version et la date d'application.

    Je vais regarder, je vous remercie.
    Liste instruction.xlsx
    Fiche de diffusion.docx

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Il n'est pas nécessaire qu'un document de publipostage soit une lettre. N'importe quel document Word peut être "publiposté".

    En prenant ton classeur Excel comme source de données, avec la bonne "condition" pour ton X et en insérant les champs des publipostage à la bonne place dans ton document Word (au besoin tu en fais un modèle), tu devrais être en voiture.

Discussions similaires

  1. [WD-2003] Tableau Excel dans MS Word 2003
    Par thebetter67 dans le forum Word
    Réponses: 1
    Dernier message: 17/10/2009, 09h17
  2. Affecter un nom à un tableau Excel collé dans Word
    Par gegadin dans le forum VBA Word
    Réponses: 3
    Dernier message: 22/09/2008, 09h16
  3. Réponses: 2
    Dernier message: 19/06/2008, 10h13
  4. Tableau excel et document Word
    Par Zimzimut dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 13/06/2007, 14h40
  5. [VBA-E] - transformé un tableau excel en objet
    Par jimbololo dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 03/06/2006, 15h48

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