Cà a l'air pas mal, comme exemple.
Si je comprends bien, il faudrait que je crée une macro qui se lance avec mon classeur et qui s'occupe elle même du formatage...
Maintenant si je dois en passer par les macros, je vais vite avoir du mal je crois. J'ai bien essayé d'adapter l'exemple fourni en bas dans le post que tu cites Jeff, mais il ne se passe rien sauf quand je choisis Franç là il applique le style BleuFranç sinon le reste çà ne marche pas...
Dans ce cas, il faut bien que je fasse :
Macro \ Gérer les macros \ Open office basic dans le classeur, que je recopie l'exemple en remplaçant comme suit :
REM ***** BASIC *****
Option Explicit
global oDoc as Object
global oListener as Object
Sub o_ListenersAdd
oDoc= thisComponent
oListener = CreateUnoListener( "o_", "com.sun.star.util.XModifyListener" )
oDoc.AddModifyListener(oListener)
End Sub
Sub o_ListenersRemove
oDoc.RemoveModifyListener(oListener)
End Sub
Sub o_Modified(oEvent)
'MsgBox "Modif..."
dim oEnCours as object
oEnCours = thiscomponent.currentSelection
if oEnCours.supportsService("com.sun.star.sheet.SheetCell") then 'Ne travaille que si la sélection en cours est une cellule
select case oEnCours.string 'Test selon la chaine contenue dans la cellule en cours
case "Franç"
if oEnCours.CellStyle <> "BleuFranç" then
oEnCours.CellStyle="BleuFranç"
end if
case "Fr/ORLF"
if oEnCours.CellStyle <> "Fr/ORLF" then
oEnCours.CellStyle="Fr/ORLF"
end if
case "Fr/Vocab"
if oEnCours.CellStyle <> "Fr/Vocab" then
oEnCours.CellStyle="Fr/Vocab"
end if
case "Maths"
if oEnCours.CellStyle <> "Maths" then
oEnCours.CellStyle="Maths"
end if
case "Mat/Prob"
if oEnCours.CellStyle <> "Mat/Prob" then
oEnCours.CellStyle="Mat/Prob"
end if
case "Mat/Géom"
if oEnCours.CellStyle <> "Mat/Géom" then
oEnCours.CellStyle="Mat/Géom"
end if
case "Hist"
if oEnCours.CellStyle <> "Hist" then
oEnCours.CellStyle="Hist"
end if
case "Géogr"
if oEnCours.CellStyle <> "Géogr" then
oEnCours.CellStyle="Géogr"
end if
case "EdCiv"
if oEnCours.CellStyle <> "EdCiv" then
oEnCours.CellStyle="EdCiv"
end if
case "Arts"
if oEnCours.CellStyle <> "Arts" then
oEnCours.CellStyle="Arts"
end if
case "EPS"
if oEnCours.CellStyle <> "EPS" then
oEnCours.CellStyle="EPS"
end if
case "Angl"
if oEnCours.CellStyle <> "Angl" then
oEnCours.CellStyle="Angl"
end if
case "Scien"
if oEnCours.CellStyle <> "Scien" then
oEnCours.CellStyle="Scien"
end if
case else 'Les autres couleurs sont à compléter.
if oEnCours.CellStyle <> "Default" then
oEnCours.CellStyle="Standard" 'Le test "Else" sert pour les autres cas => réapplique le style Standard
end if
end select
end if
end sub
Sub o_Disposing
End Sub
Puis que j'execute la macro...