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 :

mise en forme tableau word depuis excel


Sujet :

VBA Word

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut mise en forme tableau word depuis excel
    Bonjour,

    Depuis excel j'ai créé une macro pour créer un tableau word que j'alimente avec des cellules excel. Par contre je n'arrive pas à mettre en forme (italique) une zone particulière, il s'agit de toutes les deuxiemes lignes de la 1ere colonne après avoir fait un ALT ENTREE ? (voir ci-dessous METTRE LA
    LIGNE EN ITALIQUE)

    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
    Sub CriseBK()
     
        On Error GoTo Fin
     
        Set wAppWord = New Word.Application
        Application.DisplayAlerts = True
        wAppWord.ShowMe
        wAppWord.Visible = True
        wDateJour = Date
     
    '   demande fichier à ouvrir comme document vierge
     
        ChDrive "C:"
        ChDir "\TEMP\"
        wLe_Fichier = Application.GetOpenFilename(filefilter:="DOC Files (*.doc), *.doc", Title:="Nom du document vierge")
     
    '   Ouvre le fichier et copie toutes les données dans nouveau classeur
     
        Set wDocWord = wAppWord.Documents.Open(wLe_Fichier, , ReadOnly:=False)
     
    '   ajoute du texte
     
        wDocWord.Bookmarks("NomCellule").Range.Text = wLibCellule
        wDernLig = wDocWord.Tables(1).Rows.Count
     
        wI = Worksheets("Collaborateurs").Range("A65536").End(xlUp).Row
        Worksheets("Collaborateurs").Activate
     
        For wJ = 3 To wI
     
            If Range(wColonne & wJ).Value <> "" Then
                wNom = Range("D" & wJ) & " " & Range("C" & wJ)
                wDocWord.Tables(1).Rows.Add
                wDernLig = wDernLig + 1
                With wDocWord.Tables(1)
                    .Cell(wDernLig, 1).Range.InsertAfter wNom & Chr(11)
                    .Cell(wDernLig, 1).Range.InsertAfter Range("B" & wJ)        'METTRE CETTE LIGNE EN ITALIQUE
                    .Cell(wDernLig, 2).Range.InsertAfter Range("Q" & wJ)
                    .Cell(wDernLig, 3).Range.InsertAfter Range("R" & wJ)
                    .Cell(wDernLig, 4).Range.InsertAfter Range("S" & wJ)
                    .Cell(wDernLig, 5).Range.InsertAfter Range("T" & wJ)
                End With
            End If
        Next wJ
     
        wI = wDocWord.Tables(1).Rows.Count
     
        For wJ = 2 To wI
            With wDocWord.Tables(1).Rows(wJ).Shading
                .Texture = wdTextureNone
                .ForegroundPatternColor = wdColorAutomatic
                .BackgroundPatternColor = wdColorAutomatic
            End With
        Next wJ
     
        wNom = "Mise à jour du " & wDateJour
        wDocWord.Bookmarks("DerniereMAJ").Range.Text = wNom
     
    '   demande ou et sous quel nom enregistre le fichier
     
        ChDrive "C:"
        ChDir "\TEMP\"
     
        wLe_Fichier = Application.GetSaveAsFilename(InitialFileName:=wLibCellule, filefilter:="DOC (*.doc), *.doc", Title:="Sauvegarder la liste")
     
        If Err Then
            MsgBox "Cancel was pressed!"
            Exit Sub
        End If
     
        wDocWord.Application.ActiveDocument.SaveAs wLe_Fichier
        wAppWord.Application.Quit
     
    Fin:
     
    End Sub
    Y-a-t-il une solution ?

    Par contre est-il possible de récupérer la mise en forme spécifique d'une cellule excel. Exemple dans la cellule A1 j'ai du texte bold Rouge, est-ce que dans mon tableau word je peux récupérer la meme mise en forme ?

    MERCI

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    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 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Est-ce obligatoire d'avoir un Alt Enter ?

    Un vbCrLf ne ferait-il pas l'affaire ?

    Si il fait l'affire, dans chaque cellule du tableau Word, il faut sélectionner la plage de données, dans cette sélection mettre le second para en Gras ou autre.
    et passer à la cellule suivante.

    On peut alors envisager ceci, je n'ai pas fait la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveDocument.Tables(1).Cell(2, 1).Range.Select
    Selection.Paragraphs(2).Range.Font.Bold = True
    Mais tu as une idée.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    La manipulation ne fonctionne mais en creusant un peu j'ai opté pour cette solution :

    wi etant le nombre de colonnes de mon tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For wJ = 2 To wI
            With wDocWord.Tables(1).Cell(wJ, 1).Range
                .Paragraphs(2).Range.Font.Italic = True
                .Paragraphs(1).SpaceAfter = 0
                .Paragraphs(2).SpaceBefore = 0
            End With
        Next wJ
    et cela fonctionne.

    J'ai également substitué le caractère saut de ligne manuel par un CarriageReturn comme tu le suggèrais.

    Encore Merci, vraiment heureusement qu'il existe ces forums

Discussions similaires

  1. [XL-2003] Mise en forme tableau excel et remplissage colonnes
    Par domcoool dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/04/2011, 12h47
  2. Mise en forme Word depuis Excel
    Par bguichardaz dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/10/2009, 13h25
  3. Réponses: 1
    Dernier message: 20/04/2009, 15h26
  4. [VBA] Mise en forme d'un fichier Excel depuis Access
    Par morgiane dans le forum Access
    Réponses: 2
    Dernier message: 25/07/2007, 10h32
  5. Mise en forme tableau word avec VB6
    Par alexxx69 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 03/04/2007, 12h50

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