J’essaie de créer une macro dans Writer qui s’applique à toutes les pages quand j’active la commande. Il s’agit de transformer du texte blanc en vert et puis du texte vert en blanc (en 2 macros différentes). Pour le moment, quand j’active ma macro, elle ne fonctionne que si j’ai sélectionné le texte à mettre en couleur au préalable. Et si je sélectionne tout le document, elle met soit tout en blanc ou tout en vert.
Existe-t-il un code grâce auquel je pourrais la faire appliquer
uniquement au texte mis en forme en vert
sans devoir sélectionner chaque passage
C’est possible de le faire dans Word donc j’ai bon espoir que ça le soit aussi dans Writer. Merci d’avance pour votre aide
Bonjour,
Il serait intéressant de connaître le but du changement de couleurs. Si c’est pour cacher du texte, des solutions moins lourdes qu’une macro pourraient convenir.
Luc.
Merci beaucoup à tous pour vos propositions ! J’ai finalement réussi à résoudre mon problème. Le souci venant, en effet, que je créais un style de paragraphe et non un style de caractère à modifier, donc ça ne fonctionnait pas. Mon problème est donc résolu merci !
Merci pour votre réponse ! Avez-vous une idée de comment je réalise ça dans les faits lorsque j’enregistre la macro? Je passe simplement d’un style à l’autre en le sélectionnant?
Pour plusieurs raisons, je n’utilise pas les macros lorsque les fonctions de base du logiciel le permettent autrement. Je pense qu’avec un simple style de caractère on peut s’en sortir, mais je ne connais pas la façon dont fichier a été saisi, ni si tu peux agir à ce niveau. Si cette possibilité ne correspond pas à ton attente, je vais te proposer autre chose.
A partir du moment ou la sélection peut se faire par la fonction “rechercher - remplacer”, il doit être possible de l’intégrer dans une macro.
Je connais 2 méthodes pour sélectionner le texte :
La sélection par similarité à l’endroit du curseur :
Positionner le curseur dans une zone de texte de la même couleur,
Ouvrir “rechercher - remplacer” (ou Ctrl+H),
Cliquer sur le bouton “attribut” et choisir “couleur de police”
Cliquer sur “rechercher tout” pour sélectionner tout le texte similaire
La sélection par le format :
Ouvrir “rechercher - remplacer” (ou Ctrl+H),
Cliquer sur le bouton “format” et choisir la bonne couleur de police sur l’onglet “effet de caractère”
Cliquer sur “rechercher tout” pour sélectionner tout le texte correspondant au format.
A partir de là, le texte voulu est sélectionné, on ferme la boite et on en fait ce que l’on veut
A partir de l’enregistreur de macro (sans garantie), les solutions pour une couleur rouge foncé donnent les codes suivants :
sub Selection1
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(21) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.SearchFiltered"
args1(4).Value = false
args1(5).Name = "SearchItem.Backward"
args1(5).Value = false
args1(6).Name = "SearchItem.Pattern"
args1(6).Value = false
args1(7).Name = "SearchItem.Content"
args1(7).Value = false
args1(8).Name = "SearchItem.AsianOptions"
args1(8).Value = false
args1(9).Name = "SearchItem.AlgorithmType"
args1(9).Value = 0
args1(10).Name = "SearchItem.SearchFlags"
args1(10).Value = 65536
args1(11).Name = "SearchItem.SearchString"
args1(11).Value = ""
args1(12).Name = "SearchItem.ReplaceString"
args1(12).Value = ""
args1(13).Name = "SearchItem.Locale"
args1(13).Value = 255
args1(14).Name = "SearchItem.ChangedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.DeletedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.InsertedChars"
args1(16).Value = 2
args1(17).Name = "SearchItem.TransliterateFlags"
args1(17).Value = 1280
args1(18).Name = "SearchItem.Command"
args1(18).Value = 1
args1(19).Name = "SearchItem.SearchFormatted"
args1(19).Value = false
args1(20).Name = "SearchItem.AlgorithmType2"
args1(20).Value = 1
args1(21).Name = "Quiet"
args1(21).Value = true
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
end sub
et
sub Selection2
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(21) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.SearchFiltered"
args1(4).Value = false
args1(5).Name = "SearchItem.Backward"
args1(5).Value = false
args1(6).Name = "SearchItem.Pattern"
args1(6).Value = false
args1(7).Name = "SearchItem.Content"
args1(7).Value = false
args1(8).Name = "SearchItem.AsianOptions"
args1(8).Value = false
args1(9).Name = "SearchItem.AlgorithmType"
args1(9).Value = 0
args1(10).Name = "SearchItem.SearchFlags"
args1(10).Value = 65536
args1(11).Name = "SearchItem.SearchString"
args1(11).Value = ""
args1(12).Name = "SearchItem.ReplaceString"
args1(12).Value = ""
args1(13).Name = "SearchItem.Locale"
args1(13).Value = 255
args1(14).Name = "SearchItem.ChangedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.DeletedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.InsertedChars"
args1(16).Value = 2
args1(17).Name = "SearchItem.TransliterateFlags"
args1(17).Value = 1280
args1(18).Name = "SearchItem.Command"
args1(18).Value = 1
args1(19).Name = "SearchItem.SearchFormatted"
args1(19).Value = false
args1(20).Name = "SearchItem.AlgorithmType2"
args1(20).Value = 1
args1(21).Name = "Quiet"
args1(21).Value = true
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
end sub
Bonjour,
Comme je ne sais pas bien ce qu’il faut faire, à l’arrache, j’ai fait deux macros qui agissent sur un style de caractères “CouleurTexte”, créé au préalable, et affecté à toutes les zones où il doit être appliqué.
‘’’
Les macros sont dans le document joint, branchées sur deux boutons qui permettent de basculer la couleur.
Sub ChangeCouleurStyleBlanc
oDocument = ThisComponent ' le document
oTexte = oDocument.Text ' le contenu du document
oFamilles = oDocument.StyleFamilies ' l'ensemble des styles
oLaFamille = oFamilles.Getbyname("CharacterStyles") ' les styles de caractères
oStyle = oLaFamille.GetbyName("CouleurTexte") ' le style à modifier (doit exister, sinon erreur)
oStyle.Charcolor = RGB (255,255,255) ' Blanc
End Sub
Sub ChangeCouleurStyleVert
oDocument = ThisComponent
oTexte = oDocument.Text
oFamilles = oDocument.StyleFamilies
oLaFamille = oFamilles.Getbyname("CharacterStyles")
oStyle = oLaFamille.GetbyName("CouleurTexte")
oStyle.Charcolor = RGB (0,200,0) ' Vert
End Sub