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 :

Modifier la valeur par défaut des espaces avant et après des paragraphes


Sujet :

VBA Word

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 293
    Points : 96
    Points
    96
    Par défaut Modifier la valeur par défaut des espaces avant et après des paragraphes
    Bonjour,

    Dans une macro (VBA), je voudrais attribuer une valeur par défaut (dans mon cas la valeur est "0") aux espaces avant et après des paragraphes.

    quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        ActiveDocument.Range.ParagraphFormat.SpaceAfterAuto = 0 (ou False)
        ActiveDocument.Range.ParagraphFormat.SpaceBeforeAuto = 0 (ou False)
    Mais ce code ne fonctionne pas

    Merci d'avance.

    Carmelo

  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,

    Quand tu passes par ActiveDocument, tu modifies seulement ton document ouvert.

    Si tu veux une modification pour tes nouveaux documents, tu modifies directement ton modèle, ou les styles de paragraphes avec enregistrement du modèle à la fermeture.
    À 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 régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 293
    Points : 96
    Points
    96
    Par défaut
    Bonjour

    Merci pour la réponse.

    Je précise ma question :

    Dans un document existant qui a un style de paragraphe avec des espacements,
    j'insère une nouvelle page avec nouvelle section.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Selection.InsertBreak Type:=wdSectionBreakNextPage
    Dans cette nouvelle section, le style de paragraphe ne doit pas contenir des espacements.

    La ligne suivante change le style (dans ce cas "Normal") pour tout le document et retire les espacement pour les autres pages également.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        With ActiveDocument.Styles("Normal").ParagraphFormat
            .SpaceBefore = 0
            .SpaceBeforeAuto = False
            .SpaceAfter = 0
            .SpaceAfterAuto = False
        End With
    Je voudrais seulement définir un nouveau style sur base du style "Normal" mais dans lequel je changerais le "SpaceBefore" et "SpaceAfter" et appliquer ce style UNIQUEMENT à la section nouvelle

    Merci d'avance

    Carmelo

  4. #4
    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,

    À première vue, sans trop y penser, je créerais un nouveau style, disons Normal2, basé sur Normal. Tu peux aussi le faire manuellement dans l'interface de Word; et rien n'interdit de l'ajouter au modèle. Ensuite, tu utilises l'un ou l'autre, et n'importe où selon les besoins.
    À 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.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 293
    Points : 96
    Points
    96
    Par défaut
    Bonjour Clément,

    Merci pour la réponse.
    C'est ce que je parviens à faire dans la nouvelle section.


    Le problème est que j'insère dans la section créée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        Set myStyle = ActiveDocument.Styles.Add(Name:="StInsaat", Type:=wdStyleTypeParagraph)
     
        With ActiveDocument.Styles("StInsaat").ParagraphFormat
            .SpaceBefore = 0
            .SpaceBeforeAuto = False
            .SpaceAfter = 0
            .SpaceAfterAuto = False
        End With
      ActiveDocument.Sections(nombre_sections).Range.ParagraphStyle = ActiveDocument.Styles("StInsaat")
    Ensuite, j'insère un autre document dans la section créée en me plaçant à la fin du document
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       ActiveDocument.Characters(ActiveDocument.Characters.Count).Select
       Selection.InsertFile FileName:="document2.docx", Range:="", _
        ConfirmConversions:=False, Link:=False, Attachment:=False
    Et je m'aperçois que le document inséré a le style "Normal" c'est à dire, à mon sens, le style ou les différents styles embarqués dans son propre document

    Je ne peux donc pas sélectionner toutes la deuxième section et lui appliquer le style créé car il doit conserver son propre style

    Merci
    Carmelo

  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,

    Apparemment, tu insères un second document dans ton premier. Il va falloir que je te teste plus tard. Je n'ai jamais eu besoin de faire cela. Donc, je n'ai aucune idée de ce que cela peut donner à la fin et si on peut modifier le document ajouté sans perdre la mise en forme d'origine du second.

    Je se sais pas trop si cela correspond mais, tu peux toujours jeter un œil sur cette page, d'un coup...

    http://heureuxoli.developpez.com/off...cument-tiroir/
    À 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 confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 376
    Points : 596
    Points
    596
    Par défaut
    Bonjour,

    Histoire d'ajouter mon grain de sel : je suis pas sûre de comprendre, mais quand tu insères un document Word dans un document existant, tu insères les styles avec.
    Si les styles du document source existent dans le document destinataire, ils prennent le look des styles du document destinataire (sauf s'ils ont été bidouillés manuellement).
    Donc le style Normal (étant le style par défaut) du document source sera écrasé par le style Normal du document destinataire.
    Maintenant si style du document source n'existe pas dans le document destinataire, il sera importé avec le texte et se retrouvera donc dans le document destinataire.
    Mais si le style n'existait pas dans le document source, comme c'est ton cas, il n'y a aucune raison que ce style se retrouve dans le texte inséré.

    Je pense que tu confonds mise en forme et mise en page : pour changer la mise en page d'un document, on utilise des sauts de section. La mise en page, c'est le format du papier, les marges, les en-têtes et pieds de page, etc. Donc si tu importe ton fichier source dans une section avec une mise en page particulière, tu appliqueras cette mise en page à l'import. MAIS, en aucun cas, tu n'appliqueras une mise en forme. La mise en forme est représentée par les styles, et ça ne s'applique pas à une section mais à tout un document. Ton nouveau style peut s'appliquer à n'importe quel paragraphe de ton document, il se fiche bien de savoir de quelle section il s'agit. Il n'a aucun lien avec cette section.

    m@rina

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 293
    Points : 96
    Points
    96
    Par défaut
    Bonjour

    Merci pour vos réponses.

    j'insère justement des sauts de sections.
    Je définis un style et modifie le style de paragraphe associé.
    J'aimerais qu'une section utilise le nouveau style defini

    Merci

    Carmelo

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 293
    Points : 96
    Points
    96
    Par défaut
    J'ai trouvé ceci :

    après l'insertion du file

    Je selection tous le contenu de la section nouvellement créée dans ce but et lui attribue le style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveDocument.Sections(nombre_sections).Range.Select
    Selection.Style = ActiveDocument.Styles("StInsaat")
    Qu'en pensez-vous ?

    merci pour les avis

    Carmelo

Discussions similaires

  1. Modifier la valeur par défaut [Leaflet]
    Par Invité dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 09/06/2016, 15h11
  2. [V7] Modifier les valeurs par défaut du champ "Description" dans les lignes de facture
    Par jmbinformatique dans le forum Odoo (ex-OpenERP)
    Réponses: 1
    Dernier message: 24/11/2014, 08h21
  3. Réponses: 12
    Dernier message: 17/08/2009, 06h27
  4. liaison liste modifiable et valeur par défaut
    Par ra dex dans le forum IHM
    Réponses: 1
    Dernier message: 16/04/2008, 22h19

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