[Tuto] traitement de texte > BBCode GAGNEZ DU TPS SUR VOS BL

[visible par les non-inscrits] Ici on parle de nos problèmes et questions concernant les bêtas, qu'on soit auteur ou lecteur.
Avatar du membre
AMATERASU
Messages : 14
Enregistré le : jeu. mars 13, 2014 3:52 pm
Rang special : Kami des Sushis
Localisation : Pays des Sushis

Re: [Tutoriel] Transformer du traitement de texte en BBCode

Message par AMATERASU »

Pour word, il y a moyen d'installer le bbcode avec une macro. il suffit d'utiliser toujours la meme signaletique dans le texte et de la remplacer par le code idoine. :idea:

Avatar du membre
laskane
Messages : 57
Enregistré le : mer. févr. 26, 2014 1:55 pm
Rang special : Gentille humaine ?
Localisation : Aux alentours de Toulouse

Re: [Tutoriel] Transformer du traitement de texte en BBCode

Message par laskane »

C'est génial !!!

:merci2: beaucoup Bergamote, ça va tellement simplifier les choses ;)

Avatar du membre
AMATERASU
Messages : 14
Enregistré le : jeu. mars 13, 2014 3:52 pm
Rang special : Kami des Sushis
Localisation : Pays des Sushis

Re: [Tutoriel] Transformer du traitement de texte en BBCode

Message par AMATERASU »

Vu que effectivement c'est plus confortable (et sécurisé) de copier-coller le contenu d'un post dans Word, je partage avec vous 2 macros que j'ai fait, des fois que ça serve à d'autres personnes.

Tout d'abord, dans word, le texte se trouve avec des "shift-entrées" qui vont étirer les lignes jusqu'au bout de la page lors de la justification, donc la première macro remplace se saut de ligne par des fin de § normaux et justifie directement le texte :

Code : Tout sélectionner

Sub Justification()
    ActiveDocument.Range.Select
    With Selection.Find
        .Text = "^l"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchFuzzy = False
        .Execute Replace:=wdReplaceAll
    End With
    Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
End Sub
La deuxième installe le BBcode (celui que j'utilise). Il vous suffit de modifier le texte en rouge dans les .Text = "(" et .Replacement.Text = "[ color=#0000BF][ b](" pour adapter à votre façon de travailler, et de rajouter autant de boucle With/End With que vous voulez.

Code : Tout sélectionner

Sub BBcode()
    ActiveDocument.Range.Select
    With Selection.Find
        .Text = "("
        .Replacement.Text = "[color=#0000BF][b]("
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = False
        .Execute Replace:=wdReplaceAll
    End With
    With Selection.Find
        .Text = ")"
        .Replacement.Text = ")[/b][/color]"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = False
        .Execute Replace:=wdReplaceAll
    End With
End Sub

Avatar du membre
oliviersaraja
Messages : 58
Enregistré le : dim. mars 23, 2014 11:41 am
Rang special : Humain
Localisation : Environs proches de Toulouse
Contact :

Re: [Tutoriel] Transformer du traitement de texte en BBCode

Message par oliviersaraja »

Xavier a écrit :Je viens de l'installer et en effet, c'est plutôt la fête, merci beaucoup pour l'info :D

Sinon, je relaie le post de Flume, pour les versions récentes de LibreOffice, l'url est celle-ci.
Malheureusement, chez moi j'ai une erreur qui empêche l'export au format BB Code.

Dans le module 1:

Code : Tout sélectionner

Erreur d'exécution BASIC.
Une exception s'est produite : 
Type: com.sun.star.uno.RuntimeException
Message: End of content node doesn't have the proper start node
J'utilise bien la dernière version de l'Add-On, avec LibreOffice : 4.2.0.4 pour Mac Os X.

Une idée?
Twitter: @oliviersaraja
Facebook: https://www.facebook.com/olivier.saraja
- -
Découvrez tous mes travaux (Walrus, auto-édition) sur Mon site d'auteur

Avatar du membre
raccoon
Messages : 28
Enregistré le : jeu. avr. 24, 2014 7:08 pm
Rang special : laveur
Localisation : Sous le soleil

Re: [Tutoriel] Transformer du traitement de texte en BBCode

Message par raccoon »

Bonjour à tous les amateurs de Word.

Pour ceux que ça intéresse, je viens de finir de coder une macro pour word 2010 (normalement, ça sera valable pour les versions post 2010, en revanche je garantit rien pour celles d'avant) qui permet de faire ses corrections sous word puis de générer automatiquement le BBCode.

J'en avais marre de faire des rechercher/remplacer... alors j'ai commencé par faire une macro qui fait ça, puis je me suis laissé emporté et j'ai ajouté des petits machins.

Je suis ouvert à d'autres suggestions dans la limite de mes compétences et de mon temps libre aussi. Cependant, je n'ai que la version 2010, alors je ne peux malheureusement assurer l’« hotline" pour les autres versions.

Initialement publié sur ma page de présentation, je reporte ci-dessous les instructions. La macro fonctionne très bien sur mon word, mais je n'ai pour l'instant pas de retour sur d'éventuels problèmes chez d'autres.

En espérant que ça vous aide...

Avatar du membre
raccoon
Messages : 28
Enregistré le : jeu. avr. 24, 2014 7:08 pm
Rang special : laveur
Localisation : Sous le soleil

Re: [Tutoriel] Transformer du traitement de texte en BBCode

Message par raccoon »

On peut utiliser le gras, italique, souligné, barré.
La gestion des couleurs sous WD2010 est devenue complexe, pour simplifier le script, j'ai limité à 4 couleurs (s'il y a quelqu'un qui maîtrise ça, je veux bien de l'aide pour améliorer la macro... ^^ )

http://nsa34.casimages.com/img/2014/05/ ... 405292.jpg

A noter que sur d'autres versions de Word, ces couleurs sont peut-être différentes. Dans ce cas, il faudra en choisir quatre autres, déterminer les composantes R V B et modifier la macro en conséquence.



TEXTE (inventé pour l'exemple) ORIGINAL :

Le couloir était sombre et Jack avançait lentement en boitant car il avait mal aux pieds en raison de ses chaussures neuves. N’y tenant plus, il s’agenouilla pour enlever sa chaussure gauche. À ce moment-là, % une odeur désagréable vint lui fouiller les narines. Il releva la tête en haut et vit un homme au fond du corridor. Le doute l’assaillit. Soudain, avec une dextérité inouïe, il saisit ses jumelles et observa les dents de l’inconnu.
Damned ! Un vempire !
Pris de panique, il se releva et commença à danser une polka afin de distraire son opposant. Puis, d’un geste vif, il lança sa chaussure dans la gueule du vampire.

À l’aube, alors que la mer se teintait de feu, le conte Von Basiel fixait l’horizon tandis qu’une brise venant du large, séchait les larmes. Jamais un vampire n’avait été ainsi humilié et il hésitait à embrasser le levant afin de s’embraser et faire taire à jamais l’histoire de cette dent cassée par un vulgaire soulier comme indiqué plus haut.


****************************************

Faire un copier/coller sous Word (là vous pouvez faire un crtl A puis changer la police et sa taille, ça n'aura pas d'impact sur le script), puis vous faites les corrections que vous souhaitez en respectant les codes cités en dessous.





VERSION SIMULEE DE CE QU'IL FAUT FAIRE SOUS WORD:

Le couloir était sombre et Jack avançait lentement en boitant <: ,> car il avait mal aux pieds en raison de ses chaussures neuves. N’y tenant plus, il s’agenouilla pour enlever sa chaussure gauche. À ce moment-là, # une odeur désagréable vint lui fouiller # les narines. Il releva la tête en haut et vit un homme au fond du corridor. Le doute l’assaillit. Soudain, avec une dextérité inouïe, il saisit ses jumelles et observa les dents de l’inconnu peu crédible, on imagine mal cette scène .
Damned ! Un vampire !
Pris de panique, il se releva et commença à danser une polka peut-il réellement danser alors qu’il a mal aux pieds ? afin de distraire son opposant #. Puis, d’un geste vif, il lança sa chaussure dans la gueule du @ vampire.

L’histoire est un peu bancale ! Il faudrait revoir l’ensemble…

À l’aube, alors que la mer se teintait de feu, le conte Von Basiel fixait l’horizon tandis qu’une brise venant du large, séchait les larmes. ** Jamais un vampire n’avait été ainsi humilié et il hésitait à embrasser le <: soleil> levant afin de s’embraser et faire taire à jamais l’histoire de cette dent cassée par un vulgaire soulier comme indiqué plus haut. %



*********************************************

on lance la macro, et elle remplace toute seule les symboles et les couleurs en ajoutant des () ou {} à vos commentaires. Il ajoutera aussi un en-tête avec les codes utilisés, et une ébauche de commentaire en bas de texte. Il ajoute aussi le spoiler.

Comme je suis pragmatique (et fainéant), je me suis fait des astuces (mais vous n’êtes pas obligés de les utiliser)
Liste des caractères spéciaux:
+ se transforme en [Passage un peu lourd: à reformuler]
$ se transforme en (Attention au sens de ce mot: peut-être pas le plus approprié pour ce passage/contexte)
% se transforme en [Tic de langage/Formulation à prohiber dans une narration: enlever ou reformuler]
* se transforme en ~ J'aime ce passage :heart: ~
** se transforme en ~ J'adore ce passage :heart: :heart: ~
@ se transforme en [Peu élégant: à modifier]
<> se transforme en <Il manque une chose ici > (note: vous pouvez préciser quoi (virgule, verbe, etc.) comme le montre l'exemple suivant )
<: virgule> se transforme en <Il manque une chose ici : virgule>
\ se transforme en [Attention aux temps: Vérifier la chronologie des actions par rapport au temps principal de narration]
§ se transforme en [Répétition d'idées / redondance d'informations]


NORMALEMENT ça devrait pas, mais attention à ne pas laisser ces caractères s'ils sont déjà dans le texte. Là sur un cas de BL, l'auteur avait placé des **** entre ses paragraphes... ça faisait des "j'adore" partout ^ ^


Quand la macro est terminée, copiez/collez le résultat sur le forum

*********************************************




LA VERSION TRANSFORMEE PAR LA MACRO ET COLLEE CI-DESSOUS :

Mes codes :

la partie de texte qui fait référence au commentaire
( mon avis, mes remarques ou questions sur la partie en gras )
les fautes
passage/mot (pas indispensable)
les répétitions
{ les commentaires généraux }
[ Avis sur la forme ]
~ Passage que j'aime :heart: ~
Spoiler: montrer
Le couloir était sombre et Jack avançait lentement en boitant <Il manque une chose ici: , > car il avait mal aux pieds en raison de ses chaussures neuves. N’y tenant plus, il s’agenouilla pour enlever sa chaussure gauche. À ce moment-là, [Passage un peu lourd: à reformuler] une odeur désagréable vint lui fouiller [Passage un peu lourd: à reformuler] les narines. Il releva la tête en haut (Pas utile ici) et vit un homme au fond du corridor. Le doute l’assaillit. Soudain, avec une dextérité inouïe, il saisit ses jumelles et observa les dents de l’inconnu (peu crédible, on imagine mal cette scène).
Damned ! Un vampire !
Pris de panique, il se releva et commença à danser une polka (peut-il réellement danser alors qu’il a mal aux pieds ? )afin de distraire son opposant [Passage un peu lourd: à reformuler]. Puis, d’un geste vif, il lança sa chaussure dans la gueule du [Peu élégant: à modifier] vampire.
{L’histoire est un peu bancale ! Il faudrait revoir l’ensemble…}
À l’aube, alors que la mer se teintait de feu, le conte Von Basiel fixait l’horizon tandis qu’une brise venant du large, (Pas utile ici) séchait les larmes. ~ j’adore ce passage :heart: :heart: ~ Jamais un vampire n’avait été ainsi humilié et il hésitait à embrasser le <Il manque une chose ici: soleil > levant afin de s’embraser et faire (Pas utile ici) taire à jamais l’histoire de cette dent cassée par un vulgaire soulier comme indiqué plus haut. [Formulation prohibé dans une narration: enlever et/ou reformuler]
AVIS GENERAL

Sur la forme :


Sur le fond :
Modifié en dernier par raccoon le sam. mai 31, 2014 12:06 am, modifié 5 fois.

Avatar du membre
raccoon
Messages : 28
Enregistré le : jeu. avr. 24, 2014 7:08 pm
Rang special : laveur
Localisation : Sous le soleil

Re: [Tutoriel] Transformer du traitement de texte en BBCode

Message par raccoon »

DERNIERE MODIFICATION : 24 mai 2014

la macro:

Code : Tout sélectionner

Sub Merci_Raccoon()
    Application.ScreenUpdating = False
       
   Dim MyText As String
   Dim MyRange As Object
   Set MyRange = ActiveDocument.Range
   MyText = vbCrLf & vbCrLf & "Mes codes :" & vbCrLf & vbCrLf & "[color=#000000][b]la partie de texte qui fait référence au commentaire[/b][/color]" & vbCrLf & "[color=#0000FF]( mon avis, mes remarques ou questions sur la partie en gras )[/color]" & vbCrLf & "[color=#000000][u]les fautes[/u][/color]" & vbCrLf & "[color=#000000][strike]passage/mot [/strike][/color][color=#00BFFF] (pas indispensable)[/color]" & vbCrLf & "[color=#FF4000]les répétitions[/color]" & vbCrLf & "[color=#008040]{ les commentaires généraux }[/color]" & vbCrLf & "[color=#BF00BF][ Avis sur la forme ][/color]" & vbCrLf & "[color=#FF00BF]~ passage que j'aime :heart: ~[/color]" & vbCrLf & vbCrLf & "[spoiler]" & vbCrLf
   MyRange.InsertBefore (MyText)

    ConvertBold
    ConvertItalic
    ConvertUnderline
    ConvertStrikethrough
    ConvertColorBleu
    ConvertColorVert
    ConvertColorOrange
    ConvertColorCyan
    
    Remplace_dollar
    Remplace_detoile
    Remplace_etoile
    Remplace_diese
    Remplace_pct
    Remplace_arob
    Remplace_ouvert
    Remplace_ferme
    Remplace_anti
    Remplace_para
    
    ActiveDocument.Select
    pos = Selection.EndKey(Unit:=wdLine, Extend:=wdMove)
    MyText = vbCrLf & "[/spoiler]" & vbCrLf & vbCrLf & "[b]AVIS GENERAL[/b]" & vbCrLf & vbCrLf & "[u]Sur la forme :[/u]" & vbCrLf & vbCrLf & vbCrLf & "[u]Sur le fond :[/u]" & vbCrLf & vbCrLf
    Selection.InsertAfter (MyText)

    ActiveDocument.Content.Copy
    Call Selection.Find.ClearFormatting
    Application.ScreenUpdating = True
End Sub

Private Sub SetupFindObject()
    ActiveDocument.Select
    With Selection.Find
        .ClearFormatting
           .Text = ""
           .Format = True
           .MatchCase = False
           .MatchWholeWord = False
           .MatchKashida = False
           .MatchDiacritics = False
           .MatchAlefHamza = False
           .MatchControl = False
           .MatchByte = False
           .MatchWildcards = False
           .MatchSoundsLike = False
           .MatchAllWordForms = False
           .Forward = True
           .Wrap = wdFindContinue
    End With
End Sub

Private Sub ConvertItalic()
    Call SetupFindObject
    Selection.Find.Font.Italic = True
    Do While Selection.Find.Execute
        With Selection
            If InStr(1, .Text, vbCr) Then
                .Font.Italic = False
                .Collapse
                .MoveEndUntil vbCr
            End If
            If Not .Text = vbCr Then
                .Font.Italic = False
                  With Selection
             .InsertBefore "[i]"
             .Collapse (wdCollapseEnd)
             .InsertAfter "[/i]"
              End With
                'SurroundSelectionWithTag2 ("i")
            End If
        End With
    Loop
End Sub

Private Sub ConvertBold()
    Call SetupFindObject
    Selection.Find.Font.Bold = True
    Do While Selection.Find.Execute
        With Selection
            If InStr(1, .Text, vbCr) Then
                .Font.Bold = False
                .Collapse
                .MoveEndUntil vbCr
            End If
            If Not .Text = vbCr Then
                .Font.Bold = False
                  With Selection
             .InsertBefore "[color=#000000][b]"
             .Collapse (wdCollapseEnd)
             .InsertAfter "[/b][/color]"
              End With
                ' SurroundSelectionWithTag ("b")
            End If
        End With
    Loop
End Sub

Private Sub ConvertUnderline()
    Call SetupFindObject
    Selection.Find.Font.Underline = True
    Do While Selection.Find.Execute
        With Selection
            If InStr(1, .Text, vbCr) Then
                .Font.Underline = False
                .Collapse
                .MoveEndUntil vbCr
            End If
            If Not .Text = vbCr And .Range.Hyperlinks.Count = 0 Then
                .Font.Underline = False
                  With Selection
             .InsertBefore "[color=#000000][u]"
             .Collapse (wdCollapseEnd)
             .InsertAfter "[/u][/color]"
              End With
                'SurroundSelectionWithTag ("u")
            End If
        End With
    Loop
End Sub

Private Sub ConvertStrikethrough()
    Call SetupFindObject
    Selection.Find.Font.StrikeThrough = True
    Do While Selection.Find.Execute
        With Selection
            If InStr(1, .Text, vbCr) Then
                .Font.StrikeThrough = False
                .Collapse
                .MoveEndUntil vbCr
            End If
            If Not .Text = vbCr Then
                .Font.StrikeThrough = False
                  With Selection
             .InsertBefore "[color=#000000][strike]"
             .Collapse (wdCollapseEnd)
             .InsertAfter "[/strike][/color][color=#00BFFF] (Est-ce indispensable?)[/color]"
              End With
                'SurroundSelectionWithTag ("strike")
            End If
        End With
    Loop
End Sub
    
Private Sub ConvertColorBleu()
       Call SetupFindObject
    Selection.Find.Font.TextColor.RGB = RGB(0, 112, 192)
    Do While Selection.Find.Execute
        With Selection
            If InStr(1, .Text, vbCr) Then
                .Font.Color = wdColorBlack
                .Collapse
                .MoveEndUntil vbCr
            End If
            If Not .Text = vbCr Then
                .Font.Color = wdColorBlack
                With Selection
                .InsertBefore "[color=#0000FF]("
                .Collapse (wdCollapseEnd)
                .InsertAfter ")[/Color]"
                End With
            End If
        End With
    Loop
End Sub
   
Private Sub ConvertColorVert()
       Call SetupFindObject
    Selection.Find.Font.TextColor.RGB = RGB(0, 176, 80)
    Do While Selection.Find.Execute
        With Selection
            If InStr(1, .Text, vbCr) Then
                .Font.Color = wdColorBlack
                .Collapse
                .MoveEndUntil vbCr
            End If
            If Not .Text = vbCr Then
                .Font.Color = wdColorBlack
                With Selection
                .InsertBefore "[Color=#008040]{"
                .Collapse (wdCollapseEnd)
                .InsertAfter "}[/Color]"
                End With
            End If
        End With
    Loop
End Sub

Private Sub ConvertColorOrange()
       Call SetupFindObject
    Selection.Find.Font.TextColor.RGB = RGB(255, 192, 0)
    Do While Selection.Find.Execute
        With Selection
            If InStr(1, .Text, vbCr) Then
                .Font.Color = wdColorBlack
                .Collapse
                .MoveEndUntil vbCr
            End If
            If Not .Text = vbCr Then
                .Font.Color = wdColorBlack
                With Selection
                .InsertBefore "[Color=#FF4000]"
                .Collapse (wdCollapseEnd)
                .InsertAfter "[/Color]"
                End With
            End If
        End With
    Loop
End Sub

Private Sub ConvertColorCyan()
       Call SetupFindObject
    Selection.Find.Font.TextColor.RGB = RGB(0, 176, 240)
    Do While Selection.Find.Execute
        With Selection
            If InStr(1, .Text, vbCr) Then
                .Font.Color = wdColorBlack
                .Collapse
                .MoveEndUntil vbCr
            End If
            If Not .Text = vbCr Then
                .Font.Color = wdColorBlack
                With Selection
                .InsertBefore "[Color=#00BFFF]{"
                .Collapse (wdCollapseEnd)
                .InsertAfter "}[/Color]"
                End With
            End If
        End With
    Loop
End Sub

Private Sub Remplace_dollar()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
           .Text = "$"
           .Replacement.Text = "[Color=#0000FF](Attention au sens de ce mot: peut-être pas le plus approprié pour ce passage/contexte)[/Color]"
           .Forward = True
           .Wrap = wdFindContinue
           .Format = False
           .MatchCase = False
           .MatchWholeWord = False
           .MatchKashida = False
           .MatchDiacritics = False
           .MatchAlefHamza = False
           .MatchControl = False
           .MatchByte = False
           .MatchWildcards = False
           .MatchSoundsLike = False
           .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_detoile()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "**"
        .Replacement.Text = "[color=#FF00BF]~ J'adore ce passage :heart: :heart: ~[/color]"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_etoile()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "*"
        .Replacement.Text = "[color=#FF00BF]~ j'aime ce passage :heart: ~[/color]"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_diese()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "+"
        .Replacement.Text = "[color=#BF00BF][Passage un peu lourd: à reformuler][/color]"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_pct()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "%"
        .Replacement.Text = "[color=#BF00BF][Tic de langage/Formulation à prohiber dans une narration: enlever ou reformuler][/color]"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_arob()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "@"
        .Replacement.Text = "[color=#BF00BF][Peu élégant: à modifier][/color]"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_ouvert()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "<"
        .Replacement.Text = "[color=#BF00BF]<Il manque une chose ici "
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_ferme()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ">"
        .Replacement.Text = " >[/color]"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_anti()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "\"
        .Replacement.Text = "[color=#BF00BF][Attention aux temps: Vérifier la chronologie des actions par rapport au temps principal de narration][/color]"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_para()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "§"
        .Replacement.Text = "[color=#BF00BF][Répétition d'idées / redondance d'informations][/color]"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Modifié en dernier par raccoon le sam. mai 24, 2014 4:08 pm, modifié 4 fois.

Avatar du membre
raccoon
Messages : 28
Enregistré le : jeu. avr. 24, 2014 7:08 pm
Rang special : laveur
Localisation : Sous le soleil

Re: [Tutoriel] Transformer du traitement de texte en BBCode

Message par raccoon »

NOTE: si les couleurs (en BBCode) que j'utilise ne vous plaisent pas, il est facile de les modifier. Changez mes codes (genre #FF0000 ) par votre propre code couleur dans l'en-tête et dans la partie dédiée à la récupération de la couleur Word. Idem pour les textes que j'ai utilisés pour indiquer "mes codes"



COMMENT INSTALLER LA MACRO:

Je n'ai que la version 2010 en anglais alors je ne sais pas si le texte des menus ci-dessous (si c'est différent, indiquez-le moi, je ferai un édit de ce post) va correspondre, mais voici la procédure:


Afficher l’onglet Développeur ( s'il n'est pas déjà présent ):

1) Cliquez sur l’onglet Fichier
2) Cliquez sur Options
3) Cliquez sur Personnaliser le ruban
4) Sous "Personnaliser le ruban" dans la partie "Onglets principaux" (à droite), activez la case à cocher Développeur
5) OK


Afficher les outils de MACRO :

1) Il y a maintenant un onglet "Développeur" dans les menus en haut, cliquez dessus.
2) Cliquez sur l'icone "Visual Basic" (le premier à gauche)
-> une nouvelle fenêtre apparait



IMPORTANT, pour que la macro fonctionne, il faut ajouter la référence "Microsoft VBScript Regular Expressions" .
Pour ce faire, dans cette fenêtre "Microsoft Visual Basic pour applications - Normal" :

1) Allez dans Outils (dans le menu en haut de cette nouvelle fenêtre)
2) Puis dans Références
3) Cochez "Microsoft VBScript Regular Expressions 1.0" (la liste est longue, de mémoire c'est vers le milieu)
4) Cochez "Microsoft VBScript Regular Expressions 5.5" (idem)
5) OK


Dans la fenêtre visual basic "Microsoft Visual Basic pour applications - Normal", il y a une petite fenêtre "projet normal" (si vous la voyez pas, faites Ctrl+R)
1) Double-cliquez sur "Ce document" (sous "normal")
2) Une fenêtre s'ouvre, copier dedans le texte de la macro
3) Sauvez (disquette en haut) puis fermez tout.

Normalement, cette macro sera maintenant disponible dans tous vos fichiers word.

Pour lancer la macro Alt+F8 -> run ("lancer" je suppose)


ATTENTION !

1) Ne pas la lancer plusieurs fois de suite sinon ça double les infos en haut et en bas

2) avant de la lancer, je conseille fortement de faire un "Save As" de votre document, car une fois les modifications faites, le retour en arrière est galère !


Je crois qu'il n'y a rien d'autre ... Si ?

Ah oui! Si ça marche chez vous, dites-le moi ;) Merci

Avatar du membre
raccoon
Messages : 28
Enregistré le : jeu. avr. 24, 2014 7:08 pm
Rang special : laveur
Localisation : Sous le soleil

Re: [Tutoriel] Transformer du traitement de texte en BBCode

Message par raccoon »

J'ai fait de nouvelles modifications :

2 caractères spéciaux en plus
quelques changements de textes

Pas de retours d'utilisation ?

Avatar du membre
Crazy
Impératrice incontestée du Pareil © Crazy
Messages : 5826
Enregistré le : mer. juin 05, 2013 9:30 pm
Rang special : Chieuse pas tentée
Localisation : IdF
Contact :

Re: [Tutoriel] Transformer du traitement de texte en BBCode

Message par Crazy »

raccoon a écrit :Pas de retours d'utilisation ?
Tout le monde est aux Ima' ;)

Avatar du membre
Zeno Sillaa
Messages : 39
Enregistré le : jeu. août 28, 2008 11:56 am
Rang special : Revenant
Localisation : Près de Toulouse

Re: [Tuto] traitement de texte > BBCode GAGNEZ DU TPS SUR VO

Message par Zeno Sillaa »

Pas mal ce module vba, j'ai testé, je prends !
"Faites que le rêve dévore votre vie, afin que la vie ne dévore pas votre rêve"
Antoine de Saint-Exupery

Avatar du membre
Ifuldrita
Vive les rouleaux croquants au chant du rossignifu
Messages : 6093
Enregistré le : jeu. juil. 22, 2010 2:22 pm
Rang special : Bisounouille
Localisation : Shushtar

Re: [Tuto] traitement de texte > BBCode GAGNEZ DU TPS SUR VOS BL

Message par Ifuldrita »

Raccoon, ta macro avait l'air si bien...
Mais je confirme, ça ne marche pas sur MS Word 2007 :pleure:

Merci quand même pour le partage :love:
:heart: Incarnation forever de l'Archétype de la Reine des Coeurs :heart:
Quand vient la Horde aux éditions Scrinéo

Avatar par Joacoful

Avatar du membre
grenouille à cheveux
Messages : 46
Enregistré le : dim. mai 24, 2015 9:51 pm
Rang special : Grenouille Samson
Localisation : sur le mont Chauve

Re: [Tuto] traitement de texte > BBCode GAGNEZ DU TPS SUR VOS BL

Message par grenouille à cheveux »

J'ai Word 2007 et avec un ou deux bidouillages, ça a l'air de marcher. J'ai aussi changé le raccourci $ (dans ma macro il permet d'ajouter [/spoiler][spoiler] et donc de couper le texte en plusieurs parties qu'on peut ainsi poster sur le forum dans des posts différents). J'ai mi mes propres textes et couleurs (même si j'ai laissé les noms d'origine des "sub"). Enfin j'ai supprimé l'italique et le barré qui ne m'intéressaient pas. Sinon tout est copié de Racoon.

La voici :

Sub Merci_Raccoon()
Application.ScreenUpdating = False

Dim MyText As String
Dim MyRange As Object
Set MyRange = ActiveDocument.Range
MyText = vbCrLf & vbCrLf & "Ceci est ma bêta-lecture. N'oubliez pas que ce n'est que mon avis et que d'autres lecteurs pourraient voir le texte différemment." & vbCrLf & "Mes codes de couleurs :" & vbCrLf & "[color=#0000FF]bleu : style (orthographe, grammaire, mot impropre, répétitions, manque de clarté, syntaxe…)[/color]" & vbCrLf & "[color=#000000]vert: personnages (problèmes de caractérisation, crédibilité, incohérences dans le comportement…)[/color]" & vbCrLf & "[color=#FF0000]rouge : problème d'intrigue (incohérences, construction, POV,…)[/color]" & vbCrLf & "[color=#FF4000]violet : autres commentaires[/color]" & vbCrLf & vbCrLf & vbCrLf & "[spoiler]" & vbCrLf
MyRange.InsertBefore (MyText)

ConvertBold

ConvertUnderline

ConvertColorBleu
ConvertColorVert
ConvertColorOrange
ConvertColorCyan

Remplace_dollar
Remplace_detoile
Remplace_etoile
Remplace_diese
Remplace_pct
Remplace_arob
Remplace_ouvert
Remplace_ferme
Remplace_anti
Remplace_para

ActiveDocument.Select
pos = Selection.EndKey(Unit:=wdLine, Extend:=wdMove)
MyText = vbCrLf & "[/spoiler]" & vbCrLf & vbCrLf & "[spoiler]" & "Impression générale :" & vbCrLf & vbCrLf & "[/spoiler]"
Selection.InsertAfter (MyText)

ActiveDocument.Content.Copy
Call Selection.Find.ClearFormatting
Application.ScreenUpdating = True
End Sub

Private Sub SetupFindObject()
ActiveDocument.Select
With Selection.Find
.ClearFormatting
.Text = ""
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Forward = True
.Wrap = wdFindContinue
End With
End Sub



Private Sub ConvertBold()
Call SetupFindObject
Selection.Find.Font.Bold = True
Do While Selection.Find.Execute
With Selection
If InStr(1, .Text, vbCr) Then
.Font.Bold = False
.Collapse
.MoveEndUntil vbCr
End If
If Not .Text = vbCr Then
.Font.Bold = False
With Selection
.InsertBefore "[color=#000000][b]"
.Collapse (wdCollapseEnd)
.InsertAfter "[/b][/color]"
End With
' SurroundSelectionWithTag ("b")
End If
End With
Loop
End Sub

Private Sub ConvertUnderline()
Call SetupFindObject
Selection.Find.Font.Underline = True
Do While Selection.Find.Execute
With Selection
If InStr(1, .Text, vbCr) Then
.Font.Underline = False
.Collapse
.MoveEndUntil vbCr
End If
If Not .Text = vbCr And .Range.Hyperlinks.Count = 0 Then
.Font.Underline = False
With Selection
.InsertBefore "[color=#000000][u]"
.Collapse (wdCollapseEnd)
.InsertAfter "[/u][/color]"
End With
'SurroundSelectionWithTag ("u")
End If
End With
Loop
End Sub



Private Sub ConvertColorBleu()
Call SetupFindObject
Selection.Find.Font.Color = RGB(0, 112, 192)
Do While Selection.Find.Execute
With Selection
If InStr(1, .Text, vbCr) Then
.Font.Color = wdColorBlack
.Collapse
.MoveEndUntil vbCr
End If
If Not .Text = vbCr Then
.Font.Color = wdColorBlack
With Selection
.InsertBefore "[color=#0070C0]("
.Collapse (wdCollapseEnd)
.InsertAfter ")[/color]"
End With
End If
End With
Loop
End Sub

Private Sub ConvertColorVert()
Call SetupFindObject
Selection.Find.Font.Color = RGB(0, 176, 80)
Do While Selection.Find.Execute
With Selection
If InStr(1, .Text, vbCr) Then
.Font.Color = wdColorBlack
.Collapse
.MoveEndUntil vbCr
End If
If Not .Text = vbCr Then
.Font.Color = wdColorBlack
With Selection
.InsertBefore "[color=#00B050]("
.Collapse (wdCollapseEnd)
.InsertAfter ")[/color]"
End With
End If
End With
Loop
End Sub

Private Sub ConvertColorOrange()
Call SetupFindObject
Selection.Find.Font.Color = RGB(255, 0, 0)
Do While Selection.Find.Execute
With Selection
If InStr(1, .Text, vbCr) Then
.Font.Color = wdColorBlack
.Collapse
.MoveEndUntil vbCr
End If
If Not .Text = vbCr Then
.Font.Color = wdColorBlack
With Selection
.InsertBefore "[color=#FF0000]("
.Collapse (wdCollapseEnd)
.InsertAfter ")[/color]"
End With
End If
End With
Loop
End Sub

Private Sub ConvertColorCyan()
Call SetupFindObject
Selection.Find.Font.Color = RGB(112, 48, 160)
Do While Selection.Find.Execute
With Selection
If InStr(1, .Text, vbCr) Then
.Font.Color = wdColorBlack
.Collapse
.MoveEndUntil vbCr
End If
If Not .Text = vbCr Then
.Font.Color = wdColorBlack
With Selection
.InsertBefore "[color=#7030A0]("
.Collapse (wdCollapseEnd)
.InsertAfter ")[/color]"
End With
End If
End With
Loop
End Sub

Private Sub Remplace_dollar()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "$"
.Replacement.Text = vbCr & vbCr & "[/spoiler]" & vbCr & vbCr & "[spoiler]"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_detoile()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "**"
.Replacement.Text = "[color=#FF00BF]~ J'adore ce passage :heart: :heart: ~[/color]"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_etoile()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "*"
.Replacement.Text = "[color=#FF00BF]~ j'aime ce passage :heart: ~[/color]"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_diese()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "+"
.Replacement.Text = "[color=#BF00BF][Passage un peu lourd: à reformuler][/color]"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_pct()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "%"
.Replacement.Text = "[color=#BF00BF][Tic de langage/Formulation à prohiber dans une narration: enlever ou reformuler][/color]"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_arob()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "@"
.Replacement.Text = "[color=#BF00BF][Peu élégant: à modifier][/color]"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_ouvert()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "<"
.Replacement.Text = "[color=#BF00BF]<Il manque une chose ici "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_ferme()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ">"
.Replacement.Text = " >[/color]"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_anti()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "\"
.Replacement.Text = "[color=#BF00BF][Attention aux temps: Vérifier la chronologie des actions par rapport au temps principal de narration][/color]"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Private Sub Remplace_para()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "§"
.Replacement.Text = "[color=#BF00BF][Répétition d'idées / redondance d'informations][/color]"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub


Il est très important pour que ça fonctionne que les couleurs utilisées sur Word correspondent aux codes RGB (chez moi ce sont les couleurs standards : bleu (pas bleu clair), vert (pas vert clair), rouge et violet.

Si vous voulez me poser des questions...

Avatar du membre
lilye-rose
Batracien
Messages : 101
Enregistré le : jeu. mai 28, 2015 10:12 pm
Rang special : conteuse
Contact :

Re: [Tuto] traitement de texte > BBCode GAGNEZ DU TPS SUR VOS BL

Message par lilye-rose »

:heart: :heart: J'adore!! :heart: :heart:
J'ai words 2010 et ça MARCHE!!!!
Merci beaucoup Racoon pour ton aide! c'est génial!! Par contre je n'ai pas trop compris comment faire pour modifier les signes et les couleurs? Pourrais-tu me donner un deuxième coup de main?

Encore merci c'est vraiment génial!!! :pompom: :pompom: :pompom: :pompom:

:merci2:
:pompom: :chocolat: :pompom: :chocolat: :pompom: :chocolat:

Mon blog dessin
http://1yuri1penuinui.blogspot.fr/

Mon challenge 2015
Les Derniers Anges

Mon papyrus
Les Derniers Anges

Avatar du membre
nanet
Messages : 258
Enregistré le : mer. sept. 09, 2015 2:21 pm
Rang special : L'amour, cette belle magie.
Contact :

Re: [Tuto] traitement de texte > BBCode GAGNEZ DU TPS SUR VOS BL

Message par nanet »

Merci ^^
Blogs : Auteure - :lect: Lectrice
:stylo: réécriture de Arpenteuse :yata: contrat signé, sortie........ bientôt. :wow:

Répondre