Je cherche à convertir une macro fonctionnelle sous Word afin qu'elle donne le même résultat en code Writer.
J'ai tenté avec ChatGPT, mais il n'y arrive pas et je suis un débutant en macro Writer. La nomenclature m'est étrangère.
Le but :
1 = tous les paragraphes sans caractère gras et en police de 10 (chaque ligne est un paragraphe si la largeur de la feuille est suffisante).
2 = pour chaque paragraphe : ce qui est à gauche du "@", mettre en gras et police de 12.
3 = pour chaque paragraphe : ce qui est à droite de "$", mettre en gras et police de 12
Résultat attendu :
AICHE(E) # ÉCHAI @ n.f. Appât accroché à l'hameçon(Pêche). - v. Aicher. $ FR - HOU - L - M - P
Code : Tout sélectionner
Rem Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1
Option Explicit
Private Sub BoutonTraitement_Click()
Call SelectionnerXCaracteresDepuisDebutLigneEtMettreEnGras
End Sub
Sub SelectionnerXCaracteresDepuisDebutLigneEtMettreEnGras()
Dim doc As Document
Dim ligne As Paragraph
Dim nbCaracteres1 As Integer
Dim nbCaracteres2 As Integer
Dim selectionRange As Range
Dim caractereRecherche1 As String
Dim caractereRecherche2 As String
Dim Longueur As Long
' Spécifiez le caractère que vous souhaitez rechercher
caractereRecherche1 = "@"
caractereRecherche2 = "$"
' Spécifiez le document actif
Set doc = ActiveDocument
' Parcours de chaque ligne du document
For Each ligne In doc.Paragraphs
' Recherche du caractère dans la ligne
nbCaracteres1 = InStr(ligne.Range.Text, caractereRecherche1)
nbCaracteres2 = InStr(ligne.Range.Text, caractereRecherche2)
' L'on commence par une Police de 10 sur toute la ligne
ligne.Range.Font.Size = 10
' Si le nombre de caractères est suppérieur à 1, alors
If nbCaracteres1 > 0 Then
' Sélection des caractères depuis le début de la ligne
Set selectionRange = doc.Range(Start:=ligne.Range.Start, End:=ligne.Range.Start + nbCaracteres1 - 1)
' Mise en gras de la sélection
selectionRange.Bold = True
selectionRange.Font.Size = 12
End If
' Obtention du nombre de caractères dans la ligne
Longueur = Len(ligne.Range.Text) - 1
If nbCaracteres2 > 0 And nbCaracteres2 < Longueur Then
' Sélection des caractères depuis $ jusqu'à la fin
Set selectionRange = doc.Range(Start:=ligne.Range.Start + nbCaracteres2 + 1, End:=ligne.Range.Start + Longueur)
' Mise en gras de la sélection
selectionRange.Bold = True
End If
Next ligne
End Sub
Je ne veux surtout pas créer de bisbille 8- )))
Bisbille