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 :

Récupérer le format du texte pour créer un style [WD-2010]


Sujet :

VBA Word

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut Récupérer le format du texte pour créer un style
    Bonjour,

    Je créé actuellement une modèle de document pour mon groupe de travail.
    Pour déployer les styles j'avais l'intention d'utiliser des styles stockés dans un modèle (type .dotm), celà fonctionne bien.

    Par contre pour mettre à jour les styles dans le futur, je pensais stocker des exemples de texte dans des tableau et m'y référer par Macro pour en récupérer les paramètres et créer un nouveau style depuis les paramètres du texte sélectionné.

    J'arrive parfaitement à boucler sur mes tableaux, récupérer les valeurs etc... mais voici ou je bloque.

    Je pensais arriver à faire ce que je veux avec le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set NewStyle = Activedocument.Styles.Add("Nouveau_Style")
    Set NewStyle = Selection.style (Admettons que le style appliqué à la sélection est "Style1" mais avec des différences comme du texte bleu alors que Style1 est avec du texte noir)
    Mais le Nouveau_Style correspond alors au même style que Style 1 (celui enregistré avec du texte noir) pas au style affiché (donc du texte bleu).

    Comment récupérer les paramètres du texte sélectionné "en un coup" sans chercher chaque paramètres l'un après l'autre?

    J'espère que ma question est claire, je n'ai pas le temps de fournir d'exemple aujourd'hui.

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Bonjour à toi,

    Déjà dans ton code, s'il n'y a que ça forcément ça ne peux pas fonctionner.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Styles.Add "MonStyle"
    Ne fais qu'ajouter un style mais sans paramètres, à quel moment récupère tu les paramètres de ton style ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim stl As Style
     
        Set stl = ActiveDocument.Styles.Add("test")
        stl.Font.Bold = True
        stl.Font.Underline = wdUnderlineDotDotDash
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Bonsoir,
    Mon idée, enfin si VBA le permet, était de créer un style "coquille vide" puis de l'alimenter en copiant des paramètres du texte de la sélection. Je voulais justement éviter d'avoir à lister manuellement la police, la taille, la couleur, s'il y a une puce, quelle puce etc...

  4. #4
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Je comprends tout à fait l'idée mais je ne pense pas que cela soit possible.

    Je viens de faire un test rapide avec l'enregistreur de macro.
    Je prend un document Word vierge, je tape n'importe quoi, je mets en forme mon paragraphe.
    Puis je lance l'enregistreur de macro et je créé depuis l'interface Word un nouveau style depuis mon paragraphe mise en forme.
    Voici ce que cela génère :
    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
    77
    78
    79
    80
    81
    ActiveDocument.Styles.Add Name:="Style1", Type:=wdStyleTypeParagraph
        ActiveDocument.Styles("Style1").AutomaticallyUpdate = False
        With ActiveDocument.Styles("Style1").Font
            .Name = "+Corps"
            .Size = 11
            .Bold = True
            .Italic = True
            .Underline = wdUnderlineSingle
            .UnderlineColor = wdColorAutomatic
            .StrikeThrough = False
            .DoubleStrikeThrough = False
            .Outline = False
            .Emboss = False
            .Shadow = False
            .Hidden = False
            .SmallCaps = False
            .AllCaps = False
            .Color = wdColorAutomatic
            .Engrave = False
            .Superscript = False
            .Subscript = False
            .Scaling = 100
            .Kerning = 0
            .Animation = wdAnimationNone
            .Ligatures = wdLigaturesNone
            .NumberSpacing = wdNumberSpacingDefault
            .NumberForm = wdNumberFormDefault
            .StylisticSet = wdStylisticSetDefault
            .ContextualAlternates = 0
        End With
        With ActiveDocument.Styles("Style1").ParagraphFormat
            .LeftIndent = CentimetersToPoints(0)
            .RightIndent = CentimetersToPoints(0)
            .SpaceBefore = 0
            .SpaceBeforeAuto = False
            .SpaceAfter = 8
            .SpaceAfterAuto = False
            .LineSpacingRule = wdLineSpaceMultiple
            .LineSpacing = LinesToPoints(1.08)
            .Alignment = wdAlignParagraphLeft
            .WidowControl = True
            .KeepWithNext = False
            .KeepTogether = False
            .PageBreakBefore = False
            .NoLineNumber = False
            .Hyphenation = True
            .FirstLineIndent = CentimetersToPoints(0)
            .OutlineLevel = wdOutlineLevelBodyText
            .CharacterUnitLeftIndent = 0
            .CharacterUnitRightIndent = 0
            .CharacterUnitFirstLineIndent = 0
            .LineUnitBefore = 0
            .LineUnitAfter = 0
            .MirrorIndents = False
            .TextboxTightWrap = wdTightNone
            .CollapsedByDefault = False
        End With
        ActiveDocument.Styles("Style1").NoSpaceBetweenParagraphsOfSameStyle = _
            False
        ActiveDocument.Styles("Style1").ParagraphFormat.TabStops.ClearAll
        With ActiveDocument.Styles("Style1").ParagraphFormat
            With .Shading
                .Texture = wdTextureNone
                .ForegroundPatternColor = wdColorAutomatic
                .BackgroundPatternColor = wdColorAutomatic
            End With
            .Borders(wdBorderLeft).LineStyle = wdLineStyleNone
            .Borders(wdBorderRight).LineStyle = wdLineStyleNone
            .Borders(wdBorderTop).LineStyle = wdLineStyleNone
            .Borders(wdBorderBottom).LineStyle = wdLineStyleNone
            With .Borders
                .DistanceFromTop = 1
                .DistanceFromLeft = 4
                .DistanceFromBottom = 1
                .DistanceFromRight = 4
                .Shadow = False
            End With
        End With
        ActiveDocument.Styles("Style1").LanguageID = wdFrench
        ActiveDocument.Styles("Style1").NoProofing = False
        ActiveDocument.Styles("Style1").Frame.Delete
    En gros pour créé le nouveau style Word lui même énumère chaque paramètre du style courant du paragraphe....
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Merci cerede2000.
    Effectivement j'ai vu la même chose mais comme lorsqu'on formatte un texte, le sélectionne, puis dans la barre des style on sélectionne l'icône "nouveau style" l'ensemble des paramètres sont automatiquement repris... J'avais un espoir...

  6. #6
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Il sont enregistré ailleurs dans le modèle c'est certains mais comment ça aucune idée
    Tu peux en créé et les enregistrer dans le modèle, c'est déjà ce que tu fais, mais gérer des prévisions de modèles sans gérer les paramètres ça me parait difficile
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Ok, merci cerede2000, je vais donc trouver une parade et ça terminera certainement a la mano.
    Joyeux week end de Pâques !

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

Discussions similaires

  1. [Android] [Seattle] Formater un texte pour l'envoyer par email ou l'imprimer
    Par mario9 dans le forum Composants FMX
    Réponses: 9
    Dernier message: 20/02/2016, 00h12
  2. Formater un texte pour récuperer des coordonnées
    Par Ramdoulou dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 12/11/2008, 14h50
  3. [vb6]extraire text pour créer base de doneé
    Par bailamos dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 06/10/2007, 00h28
  4. [Word] Récupérer résultat Mysql pour créer un document word
    Par fat dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/06/2007, 16h59
  5. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17

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