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

Word Discussion :

Comment centrer verticalement les cellules en créant un style de tableau en VBA ?


Sujet :

Word

  1. #1
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut Comment centrer verticalement les cellules en créant un style de tableau en VBA ?
    Bonjour,

    Lorsque l'on enregistre une macro en créant un style de tableau, l'alignement des cellules vertical n'est pas retranscrit dans la macro (bug microsoft ?).

    Pour essayer: sélectionner un tableau --> onglet création --> ruban style de tableau --> Modifier le style de tableau --> au milieu du formulaire sur la droite se trouve la boite de sélection de l'alignement qui propose 9 choix pour l'alignement des cellules (haut gauche, haut centre, haut droite, centre gauche, centre centre, centre droit, bas gauche, bas centre et bas droite).

    1) Enregistrer la macro correspondant en faisant le choix d'un alignement vertical différent. 2) Modifier à nouveau le style du tableau pour choisir un nouvel alignement vertical. 3) Sélectionnez le tableau et exécuter votre macro ==> l'alignement vertical n'est pas modifié !!!!!

    Je recherche comment coder cet alignement vertical dans une macro de création de style. Pouvez-vous m'aider ?

    Merci...

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  2. #2
    Inactif  

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je vais devoir attendre pour tester, mais, règle générale on peut modifier l'alignement d'un tableau en travaillant avec les marges, pour peu que le tableau soit son seul paragraphe. Sauf horreur de ma part, un tableau inséré dans un paragraphe existant, prend l'alignement du paragraphe.

    Essaie en insérant ton tableau dans un nouveau paragraphe entre deux paragraphes existants, pour voir ce que cela donne.

    Par ailleurs, il y a deux types de styles dans Word : les styles de caractères et les styles de paragraphe. Je n'ai jamais fait de tests approfondis, mais il me semble que le style de caractères s'applique aux seuls caractères sélectionnés, alors que le style de paragraphe s'applique au paragraphe au complet.

    Par exemple, tape un paragraphe isolé et mets-lui un style de titre. Ensuite, fais "l'erreur" de commencer ton nouveau texte dans le paragraphe de titre. Ton nouveau texte va prendre automatiquement la mise en forme du titre; parce que les styles de titres sont en principe des styles de paragraphes.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut
    Bonjour clementmarcotte et merci pour ta réponse,

    Ta remarque concernant le style du paragraphe qui va contenir le tableau est judicieuse.
    Cependant, ce style de paragraphe ne pourra influer (à vérifier) que sur l'alignement horizontal.
    A remarquer à ce sujet que l'alignement des tableaux est un peu différent puisque le "justifié" n'existe pas.

    Mon problème concerne plutôt l'alignement vertical, qui n'existe pas pour un style de paragraphe.
    Voici le formulaire de modification (ou création) de style de tableau:
    Nom : StyleDeTableau_Alignement.png
Affichages : 1903
Taille : 17,1 Ko

    Tu remarques que l'on peut sélectionner "coin supèrieur droit", ce qui correspond à un alignement horizontal = droite + alignement vertical = haut.
    En augmentant la hauteur d'une ligne du tableau, on voit que ça fonctionne parfaitement.
    Par contre, en enregistrant la macro: AUCUN CODAGE RELATIF A L'ALIGNEMENT VERTICAL !!!

    Comment coder cet alignement "coin supèrieur droit" en VB ?

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  4. #4
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut
    Voici mes avancées sur le sujet:

    Je réussi à centrer verticalement les cellules du tableau avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
    Ce code correspond au formulaire:
    Nom : CentrageVertical.png
Affichages : 2833
Taille : 9,8 Ko


    MALHEUREUSEMENT, en utilisant ce code, le centrage vertical s'applique dynamiquement aux cellules du tableau, mais ne fait toujours pas partie du style de tableau.
    En réappliquant le style de tableau créé par vb (ou vba), l'alignement disparait.



    Quel code peut-on ajouter lors de la création du style de tableau pour que l'alignement vertical des cellules fasse partie du style ?

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  5. #5
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut
    Up !!!

    J'ai essayé d'enregistrer une macro en modifiant le style d'un tableau et en choisissant l'alignement vertical centré des cellules, mais la macro ne contient pas l'information spécifique à l'alignement vertical (c'est à dire que si on exécute la macro enregistrée sur un nouveau tableau, l'alignement vertical n'a pas lieu).

    J'ai effectué des essais en word 2007, word 2010 et word 2013, mais l'enregistreur de macro contient toujours ce même bug.
    J'ai bien essayé de me passer de l'enregistreur de macro, mais personne ne semble connaitre cette commande !

    Le problème se résume à: Comment paramétrer par code le style d'un tableau pour avoir l'alignement vertical (centré) des cellules ?

    Est-ce qu'il serait possible d'obtenir cette information de Microsoft ?

    Merci à tous ceux qui pourraient m'apporter de l'aide sur ce sujet !!!

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  6. #6
    Inactif  

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Vite fait, sans regarder, je pense que l'alignement du texte du tableau passe par le format des paragraphes. Mais pour l'instant, le temps disponible est limité. Je vais regarder plus tard ce soir, chez-moi. Chez-vous, cela va ressembler plus à cette nuit.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  7. #7
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut
    Bonjour clementmarcotte,

    Pour essayer de diriger ta recherche, je ne crois pas que l'alignement vertical soit associé au paragraphe.
    L'alignement horizontal, oui (gauche, droite, centré ou justifié).
    L'alignement vertical est je pense spécifique aux cellules de tableau (voir plus haut message du 13.05).

    Cette propriété est accessible lorsque l'on modifie le style d'un tableau sous la forme suivante:

    Nom : TableauCentrageVertical.png
Affichages : 1847
Taille : 32,9 Ko

    Les 3 premiers choix correspondent à l'alignement horizontal du paragraphe, MAIS quelle est la commande par code pour les 6 derniers choix ???

    Nom : TableauCentrageVerticalKO.png
Affichages : 1816
Taille : 7,4 Ko

    HELP...!!!!

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut


    Bonjour,

    apparemment il ne serait pas possible d'associer un format d'alignement vertical de cellule d'un tableau à un style …

    Par contre comme tu as déjà le code pour paramétrer les cellules en vertical, pourquoi insister côté style ?!


    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut
    Bonjour Marc-L,

    Citation Envoyé par Marc-L Voir le message
    (...)
    Par contre comme tu as déjà le code pour paramétrer les cellules en vertical, pourquoi insister côté style ?!
    (...)
    La réponse a ta question se trouve plus haut dans mon message du 13.05:
    "MALHEUREUSEMENT, en utilisant ce code, le centrage vertical s'applique dynamiquement aux cellules du tableau, mais ne fait toujours pas partie du style de tableau.
    En réappliquant le style de tableau créé par vb (ou vba), l'alignement disparait."

    Je souhaite bien sur que l'on puisse réappliquer le style du tableau SANS perdre le centrage vertical.
    Hors si on modifie le style de tableau manuellement en centrant verticalement, il n'y a pas de problème.
    C'est pourquoi je recherche la commande qui fait la même chose que l'action manuelle dans la fenêtre de modification de style !!!

    (dis moi si je n'ai pas été clair)

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  10. #10
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut


    La commande n'est pas au niveau du style mais au niveau des cellules comme dans ton post #4,
    il suffit de développer l'aide VBA interne concernant l'objet Style


    Au passage les questions VBA doivent être créées dans le forum VBA Word, car quand il me reste un peu de temps,
    je passe du forum Macros & VBA Excel au forum VBA Word mais à cause d'un touchpad récalcitrant j'ai ouvert ce forum Word
    et donc par hasard j'ai vu "VBA" à la fin du titre de cette discussion, presque 5 mois après sa création !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  11. #11
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut Recherche ligne de code !!!
    Bonjour Marc-L,

    Tout d'abord merci de continuer à t'intéresser à ma question !

    Citation Envoyé par Marc-L Voir le message

    La commande n'est pas au niveau du style mais au niveau des cellules comme dans ton post #4,
    il suffit de développer l'aide VBA interne concernant l'objet Style
    (...)
    La commande existe bien au niveau des cellules, MAIS Word sait AUSSI l'associer au style.
    Pour preuve, si tu modifies un style et que tu précises l'alignement vertical des cellules, tu auras bien l'alignement vertical si tu appliques le style à un autre tableau. Donc Word a bien conservé l'info du centrage vertical dans le style.

    Le seul problème c'est que la (ou les) ligne de code permettant ceci m'est inconnue !
    Comme je le précise plus haut, l'enregistreur de macro "oublie" ce paramètre lorsqu'il génère son code automatique.

    Comment faire pour obtenir cette info ???

    Citation Envoyé par Marc-L Voir le message
    (...)Au passage les questions VBA doivent être créées dans le forum VBA Word, car quand il me reste un peu de temps,
    je passe du forum Macros & VBA Excel au forum VBA Word mais à cause d'un touchpad récalcitrant j'ai ouvert ce forum Word
    et donc par hasard j'ai vu "VBA" à la fin du titre de cette discussion, presque 5 mois après sa création !
    Effectivement, désolé.
    Est-ce qu'un modérateur pourrait déplacer mon post au bon endroit ?

    @ bientôt

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

Discussions similaires

  1. colonnes factices : centrer verticalement les DIV
    Par sebhm dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 18/02/2009, 12h11
  2. Centrer verticalement les objet dans un flow layout ?
    Par Djobird dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 05/09/2008, 10h08
  3. Comment centrer verticalement une image aléatoire ?
    Par Gunner4902 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 25/11/2007, 12h09
  4. Centrer verticalement les éléments d'un <form>
    Par Huntress dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/03/2006, 10h46

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