VBA Word2007 - Modifier la police selon condition
Mouftie
Messages postés
234
Statut
Membre
-
Mouftie Messages postés 234 Statut Membre -
Mouftie Messages postés 234 Statut Membre -
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 ? :(
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 ? :(
8 réponses
-
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 . -
Bonjour Lermite222
(ça fait plaisir de re-travailler avec toi...)
voici le fichier sortant de la coloration syntaxiqueSub 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 Subla macro avec laquelle je le récupère sur WordSub 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 -
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.
-
(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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
(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.
-
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" svpSub 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 -
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 -
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.