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 dans un tableau [WD-2010]


Sujet :

VBA Word

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Points : 67
    Points
    67
    Par défaut Mise en forme dans un tableau
    Bonjour à tous,

    Dans mon document WORD, j'ai un tableau possédant 2 lignes :
    - La première ligne du tableau est une ligne d'en-tête dans laquelle, pour chaque colonne, j'ai un libellé différent.
    - Ma deuxième ligne est un peu particulière. Dans chaque colonne, j'ai un code.

    Je veux insérer dans ce tableau, des informations qui proviennent d'un fichier extérieur. De ce fait, lorsque je traite le tableau en VB, pour chaque ligne présente dans mon fichier extérieur, j'insère une nouvelle ligne dans le tableau et je fais correspondre la valeur de la colonne en fonction du code de la colonne => J'insère donc une ligne supplémentaire avec les valeurs dans les bonnes colonnes. Pour être complet, au terme du traitement du tableau, j'ai une méthode qui supprime la ligne du tableau dans laquelle, j'ai le fameux code pour ne pas avoir une ligne "moche" dans le tableau

    Ma question est : Lorsque j'insère ma nouvelle ligne dans le tableau, est ce que peux reprendre la mise en forme de la deuxième ligne (celle où j'ai les codes) et l'appliquer sur la nouvelle ligne insérée (la troisième en fait) ?

    D'avance merci.
    Franck.

  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 : 60
    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
    Salut,

    Essaie en plaçant la curseur dans la dernière cellule à droite de ton tableau, utilise la touche tabulation et une nouvelle ligne est créée avec la mise en forme de la précédente.

    Normalement, l'ajout d'une ligne avec les outils tableau donne le même résultat.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    Merci pour la réponse.

    Je viens de faire la manipulation en utilisant Word et enregistrer la macro pour regarder le code VB que Word génère sur l'action :
    - Je me positionne sur la dernière cellule de la deuxième ligne
    - Je lance l'enregistrement de la macro
    - Je tabule ==> Word insère automatiquement une ligne

    Voici ce que donne la macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub Macro1()
         Selection.MoveRight Unit:=wdCell
    End Sub
    Je n'ai pas mon code sous les yeux, mais dès demain, j'essaie d'intégrer cette solution.

    Merci beaucoup.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    Je n'ai effectivement pas accès à mon code, mais j'ai au moins accès à Word et à l'enregistrement de macro...

    Dans Word, dans un document vide, je me suis donc créé un tableau identique à celui que je dois gérer (2 lignes, plusieurs colonnes).
    Je rappelle que je souhaite ajouter des lignes dans mon tableau. Ces nouvelles lignes ajoutées doivent avoir la même mise en forme que la ligne 2. La première ligne étant l'en-tête du tableau.

    Voici le code associé à la macro.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub AddRow()
        Dim count As Integer
        'Nombre de colonnes dans la tabealu n°1
        count = ActiveDocument.Tables(1).Columns.count
        'Sélection de la dernière cellule de la deuxième ligne du tableau
        ActiveDocument.Tables(1).Rows(2).Cells(count).Range.Select
        'Ajout d'une nouvelle ligne ==> Automatiquement, Word reprend la même mise en forme que la ligne sur laquelle on était
        Selection.MoveRight Unit:=wdCell
    End Sub
    Je viens de tester cette macro, directement dans Word, et ça fait très exactement ce que je veux !!!

    Merci beaucoup Heureux-oli et bonne soirée.

  5. #5
    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 : 60
    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
    Salut,

    Tu n'as jamais mentionné que c'était avec du code que tu souhaitais faire cette manipulation.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    Salut,

    dans mon premier post, j'ai écrit
    ...De ce fait, lorsque je traite le tableau en VB...
    Ce n'était sûrement pas assez clair dans ma phrase, j'essaierai de l'être plus la fois prochaine.
    Désolé.
    Cependant, c'est tout de même grâce à ta réponse que j'ai su comment faire (je ne savais que la touche TAB en fin de tableau, ajoutait une ligne en reprenant la mise en forme de la précédente).

    A+

  7. #7
    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 : 60
    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
    Salut,

    Autant pour moi, ça m'a échappé, si je l'avais svu, j'aurais déplacé dans la partie VBA du forum Word.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OL-2010] Mise en forme d'un tableau dans le corps d'un message
    Par jankel dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 15/06/2011, 10h33
  2. mise en forme d'un tableau dans un richtextbox
    Par sanach dans le forum VB.NET
    Réponses: 2
    Dernier message: 30/04/2008, 09h34
  3. [MySQL] mise en forme dans un tableau de fichier php
    Par body72 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/04/2008, 22h56
  4. Mise en forme dans un RTF via une syntaxe personnelle
    Par sqwalichou dans le forum Autres langages
    Réponses: 2
    Dernier message: 24/02/2006, 22h19
  5. Sauvegarder une mise en forme dans une RichTextBox
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 29/12/2005, 12h19

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