VBA Word2007 - Modifier la police selon condition

Fermé
Mouftie Messages postés 215 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 6 septembre 2020 - 16 févr. 2013 à 12:30
Mouftie Messages postés 215 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 6 septembre 2020 - 19 févr. 2013 à 19:17
Bonjour, pour récupérer le code de mes macros, j'utilise la coloration syntaxique de http://charles.racaud.free.fr/code-syntaxing/index mais les commentaires en verts sont avec une police de 7.5, ce qui est un peu petit pour moi.
Comme j'ai fait une macro pour recopier la coloration syntaxique dans Word, je voudrais savoir comment je peux coder pour augmenter la police quand celle-ci est verte ; j'imagine qu'il va falloir que je trouve le code de la couleur importée.

Sinon, peut-être peut-on écrire un code qui modifie la police entre tout ce qui commence par ' et qui finit par ^p.

Est-ce que c'est possible ? si oui, est-ce qu'on peut m'aider ? :(
A voir également:

8 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 16/02/2013 à 14:59
Bonjour,
Avec une exemple concret ce serait plus simple.
Tu peu déposer un classeur sans donnée confidentielle par exemple sur https://www.cjoint.com/
A+

Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0
Mouftie Messages postés 215 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 6 septembre 2020 15
16 févr. 2013 à 15:28
Bonjour Lermite222
(ça fait plaisir de re-travailler avec toi...)
voici le fichier sortant de la coloration syntaxique
Sub NameOnglet()
'
'Attribution du nom de chaque feuille

If IsEmpty(Range("B2")) Then Exit Sub
    ActiveSheet.Name = [B2] & " DA"
'    ActiveWorkbook.SaveAs Filename:= _
'        "N:\MDE\DPM\5-Processus Offre de Service-Relation Client\Etudes\Outil pilotage PFS\Documents de travail\Fichiers Jasper DAppels\2012\DA 04.xlsm" _
'        , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
Sub TriOnglet()
Dim Encore As Boolean
Dim i As Byte
    Do
    Encore = False
    For i = 1 To Sheets.Count - 2
      If Sheets(i).Name > Sheets(i + 1).Name Then
        Sheets(i).Move After:=Sheets(i + 1)
        Encore = True
      End If
    Next i
    Loop Until Encore = False

End Sub
la macro avec laquelle je le récupère sur Word
Sub CollMacro()
'
' CollMacro Macro
'
' Collage spécial Htlm
    Selection.PasteAndFormat (wdPasteDefault)
    Selection.Shading.Texture = wdTextureNone
    Selection.Shading.ForegroundPatternColor = wdColorAutomatic
' met un fond vert
    Selection.Shading.BackgroundPatternColor = -704577690
    Selection.Find.ClearFormatting
    With Selection.ParagraphFormat
        .SpaceBefore = 0
        .SpaceAfter = 0
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^l"
        .Replacement.Text = "^p"
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.HomeKey Unit:=wdStory
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

et je joins le fichier après traitement avec la macro
https://www.cjoint.com/?CBqpAHbUkow
Merci pour ton aide
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
16 févr. 2013 à 15:52
Je ne maîtrise pas beaucoup le VBA de Word, il serait peut-être possible de faire cette modif dans Excel ?
Pourrais-tu déposer le classeur avec la coloration.
PS: Il est fort probable que cette modif pourrait être faite dans Word, si un autre intervenant le peu... qu'il n'hésite pas à intervenir.
0
Mouftie Messages postés 215 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 6 septembre 2020 15
16 févr. 2013 à 16:06
(Je suis d'ailleurs un peu étonné de te retrouver sur un forum Word, tu m'as toujours dépanné sur Excel.)

En effet, je fais du VBA depuis peu et essentiellement sur Excel, mais pour chaque travail que je livre, je rédige un mode opératoire et une description applicative (autant pour l'évolution que pour du tutorat - à mon niveau...).
Donc je récupère mon code sur excel, mais pour le coller sur word, je dois passer par un outil de coloration syntaxique (je n'ai rien trouvé de mieux, j'avais d'ailleurs demandé à des profs lors de mes DIF, il ne m'ont rien donné de mieux)...

Donc voici un exemple sur excel.
Encore merci d'essayer...
https://www.cjoint.com/?CBqqgEPrLko
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
16 févr. 2013 à 16:09
(Je suis d'ailleurs un peu étonné de te retrouver sur un forum Word, tu m'as toujours dépanné sur Excel.)
?? c'est un forum VB et il n'est pas possible de connaître le VB "incriminer" au départ.
Je regarde ton classeur.
0
Mouftie Messages postés 215 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 6 septembre 2020 15
Modifié par Mouftie le 18/02/2013 à 19:45
Bonjour,
J'ai pas beaucoup de succès...
Bon alors j'ai essayé un truc, mais je n'ai encore jamais fait de boucle avec vba Word, et quand je lance avec F8, j'ai une erreur incompatibilité de type sur ma ligne For each...

qq'1 peut-il corriger cette partie du code, que j'ai mis en gras et en italique ('MeF des commentaires" svp
Sub CollMacro() 
' Collage spécial Htlm 
    Selection.PasteAndFormat (wdPasteDefault) 
    Selection.Shading.Texture = wdTextureNone 
    Selection.Shading.ForegroundPatternColor = wdColorAutomatic 
' met un fond vert 
    Selection.Shading.BackgroundPatternColor = -704577690 
'MeF des commentaires 
Dim c As Variant 
    Selection.MoveUp Unit:=wdParagraph, Count:=1 
            Selection.Find.ClearFormatting 
For Each c In Paragraph    'je voudrais faire une boucle 
'pour chaque c dans le paragraphe en cours 
If c = "^l'" Or c = "^t'" Then 
'alors sélection de la ligne entière ou mieux jusqu'au prochain ^l 
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend 
    Selection.Font.Size = 9.5 
    Selection.Font.Bold = wdToggle 
    Selection.EndKey Unit:=wdLine     '   arrêt de la sélection 
Next c 
'MeF des paragraphes 
    Selection.Find.ClearFormatting 
    With Selection.ParagraphFormat 
        .SpaceBefore = 0 
        .SpaceAfter = 0 
    End With 
    Selection.Find.Execute Replace:=wdReplaceAll 
    With Selection.Find 
        .Text = "^l" 
        .Replacement.Text = "^p" 
    End With 
    Selection.Find.Execute Replace:=wdReplaceAll 
    Selection.HomeKey Unit:=wdStory 
    Selection.Find.Execute Replace:=wdReplaceAll 
End Sub


Merci pour votre aide
0
Bonjour,

Tu peux aussi tout simplement mettre en "chasse" fixe dans les paramètres de la coloration : http://charles.racaud.free.fr/code-syntaxing/pset
0
Mouftie Messages postés 215 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 6 septembre 2020 15
19 févr. 2013 à 19:17
Bonjour Banaioupas,
Pourquoi faire simple quand on peut faire compliquer ?
C'est vrai qu'autrefois (quand je ne faisais que très très peu de vba), j'avais regardé les paramètres, mais le site ne conservait pas mes modifs à cause des cookies. Aujourd'hui, on a moins peur des cookies...
Je vais essayer ça, mais j'aimerai quand même bien savoir pourquoi mon code ne fonctionne pas
'MeF des commentaires 
Dim c As Variant 
    Selection.MoveUp Unit:=wdParagraph, Count:=1 
            Selection.Find.ClearFormatting 
For Each c In Paragraph    'je voudrais faire une boucle 
'pour chaque c dans le paragraphe en cours 
If c = "^l'" Or c = "^t'" Then 
'alors sélection de la ligne entière ou mieux jusqu'au prochain ^l 
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend 
    Selection.Font.Size = 9.5 
    Selection.Font.Bold = wdToggle 
    Selection.EndKey Unit:=wdLine     '   arrêt de la sélection 
Next c 

au niveau de For Each...
Merci beaucoup.
0