Indenter et colorer le code source dans un fichier word

ba3ouda Messages postés 12 Date d'inscription vendredi 11 août 2006 Statut Membre Dernière intervention 2 novembre 2008 - 1 mai 2007 à 11:20
ba3ouda Messages postés 12 Date d'inscription vendredi 11 août 2006 Statut Membre Dernière intervention 2 novembre 2008 - 3 mai 2007 à 11:03
salut


je voulais copier le code source de mon projet dans word, mais je veux avoir le texte indenté et les mots clés colorés comme en vb6
est ce que quelqu'un a un outils qui permet de faire ca
merci

7 réponses

Utilisateur anonyme
1 mai 2007 à 11:41
Salut,

Il faut passer par un petit logiciel qui mettera ton code en html
Regarde les sources de Mortalino, PCPT, Renfield ou le mien

http://charles.racaud.free.fr/code-syntaxing/





__________
 Kenji
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
1 mai 2007 à 15:39
Salut,

j'ai transformé notre source (celle faite avec PCPT) pour l'utiliser dans Word.
(Désolé, y a des choses obsolète, mais la flemme de virer certains bouts de code)
Je te décompose tout en 2 messages, ouvre ton document Word, fais Alt F11.

Insère un , nomme le UserForm1. Place dedans un TextBoxla propriété Multiline à True et EnterKeyBehavior à True.
Place 2 boutons, un nommé cmdValider et l'autre cmdAnnuler.

Place ce code :

Private Coloration  As AfCls_VbToHtml
Private Config      As New AfCls_IniLite

Private Sub cmdAnnuler_Click()
    Unload Me
End Sub

Private Sub cmdValider_Click()
    Dim sFichier    As String
    Dim MyStart     As Long
    Dim MyEnd       As Long
        MyStart  Selection.Start: If MyStart 0 Then MyStart = 1
    
    sFichier = Application.Path & "\Exports\Coloration.html"
    Config.IniPath = Application.Path & "\Datas\VbToHtml_Config.ini"

    Set Coloration = New AfCls_VbToHtml
    '*** instance de Coloration vers la classe AfCls_VbToHtml pour récupérer _
         les infos utiles durant la conversion
    With Coloration
        .ColorCodeVB = Config.ReadIniLong("COULEUR", "CodeVB")
        .ColorFonctionVB = Config.ReadIniLong("COULEUR", "FonctionVB")
        .ColorCommon = Config.ReadIniLong("COULEUR", "Commun")
        .ColorComment = Config.ReadIniLong("COULEUR", "Commentaire")
        .ColorText = Config.ReadIniLong("COULEUR", "Chaine")
        .ColorNumber = Config.ReadIniLong("COULEUR", "Nombre")
        .FontName = Config.ReadIniString("APPLICATION", "FontName")

        .Utility = HtmlPage
        .PersoHeader = Config.ReadIniStringExtraSize("SIGNATURE", "Entete")
        .PersoFooter = Config.ReadIniStringExtraSize("SIGNATURE", "Pieddepage") & Space(1) & Config.ReadIniStringExtraSize("SITE", "Pseudo")
        
        .DocTitle = "Coloration syntaxique, " & CStr(Format(Now, "dddd dd mmmm yyyy hh:nn"))
        .SaveAs = sFichier
        .KeywordsCodePath = Application.Path & "\Datas\KeyWordCode.txt"
        .KeywordsFunctionPath = Application.Path & "\Datas\KeyWordFonction.txt"
                If Mid(txtCode.Text, Len(txtCode) - 2, 2) vbCrLf Then txtCode.Text Mid(txtCode.Text, 1, Len(txtCode) - 2)
        Call .Vb_Html(txtCode.Text)
        
        Selection.InsertFile FileName:=Application.Path & "\Exports\Coloration.html", Range:="", _
        ConfirmConversions:=False, Link:=False, Attachment:=False
    End With

    Set Config = Nothing
    Set Coloration = Nothing
    Unload Me
End Sub

~ <small> Mortalino ~ Colorisation automatique </small>

Deuxième étape, insère un module, et place ce code qui va servir à créer un menu dans Word :

Sub Convert()
    UserForm1.Show
End Sub

Sub AjoutMenu()
On Local Error Resume Next
'Voir si la barre a ete deja installee avant
For I  = 1 To CommandBars.Count
    If CommandBars(I).Name =  "Colorier du code VB" Then GoTo 1
Next
'Sinon on ajoute la barre
'on enregistre le module majmin dans NORMAL
CustomizationContext = NormalTemplate
Application.OrganizerCopy ActiveDocument.FullName, NormalTemplate.FullName, "MajMin", wdOrganizerObjectProjectItems
CommandBars.Add "Colorier du code VB"
'Puis les boutons
Set bouton = CommandBars("Colorier du code VB").Controls.Add(Type:=msoControlButton, Temporary:=True)
With bouton
.Caption = "Affiche une Form afin de coller le code à colorier"
.OnAction = "Module1.Convert"
.Style = msoButtonCaption
End With
'Positionnement de la barre apres lui avoir donner la visibilite

With CommandBars("Colorier du code VB")
.Visible = True
.Position = msoBarTop
End With
NormalTemplate.Save

1:
End Sub

Sub SupprMenu()
    On Local Error Resume Next
    Dim ctl As CommandBar
    
    For Each ctl In Application.CommandBars
        If ctl.Name = "Colorier du code VB" Then ctl.Delete
    Next ctl
End Sub

~ <small> Mortalino ~ Colorisation automatique </small>

Troisième étape, double-clique sur le Module ThisDocument, et place ça :

Private Sub Document_Close()
    Call Module1.SupprMenu
End Sub

Private Sub Document_Open()
    Call Module1.AjoutMenu
End Sub

~ <small>=39466 Mortalino ~ Colorisation automatique</small>

Je fini le code de la classe sur un autre message, sinon, ça va être trop long et ça passera pas...

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
1 mai 2007 à 15:55
Bon j'arrive pas à le coller (trop long, ça me plante IE) mais regarde dans la source :

http://www.vbfrance.com/codes/COLORISATION-SYNTAXIQUE-LANGAGE-VB-FORMAT-HTML-POUR-FORUM_39466.aspx

Le code de la classe est dedans. Au pire fait un import.

De toutes facons, faut que tu télécharges la sources, pour récupérer le dossier Datas et ce qu'il y a dedans, et tu dois le placer dans le répertoire de WinWord.


(généralement C:\Program Files\Microsoft Office\OfficeXX\)

Voilà, le tour est joué (enregistre ton doc, ferme le et réouvre le). Avec ton doc Word, quand tu as besoins de colorer du code, clique sur le nouveau Menu, une form apparait, colle ton code dans le TextBox et clique sur Valider, ton code se colorie et s'insère à l'endroit du curseur dans le document 

@++





<hr width="100%" size="2" />

  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
ba3ouda Messages postés 12 Date d'inscription vendredi 11 août 2006 Statut Membre Dernière intervention 2 novembre 2008
1 mai 2007 à 17:22
desolé mais je vois pas ou ca se trouve le nouveau menu!!
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 mai 2007 à 11:36
de toutes facons, ton code source est indenté, déjà, dans VB6....

non ???? :S

http://www.vbfrance.com/code.aspx?ID=41455

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
2 mai 2007 à 16:12
Salut Renfield,

avec VB6, si tu colles du codes dans Word, ça reste en noir.. Ca ne fonctionne qu'avec VB2005.

ba3ouda,
mon code pour le menu est pour Word 2007, vais voir pour Word 2003.
Cas échéant, file moi ton mail par MP, je t'enverrai le fichier

Rey, pas testé avec ta source dans l'IDE, tellement habitué avec celle que j'ai...

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
ba3ouda Messages postés 12 Date d'inscription vendredi 11 août 2006 Statut Membre Dernière intervention 2 novembre 2008
3 mai 2007 à 11:03
[mailto:r.monaiche@hotmail.com r.monaiche@hotmail.com] voila mon mail
0
Rejoignez-nous