Article épinglé

samedi 26 novembre 2022

LibreOffice - Macro pour supprimer les accents des lettres des mots des cellules de toute une feuille....

Fier de mon titre ;)

J'ai testé ça

Sub CalcSupprimerAccent
'J.P  Mai 2015
Dim oDoc,aTrouve,aRemplace,aTabCount,SetR,oSheet
oDoc = ThisComponent
aTrouve =    Array("Á","Â","Ã","Ä","Å","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ñ","Ò",_
                 "Ó","Ô","Õ","Ö","Ù","Ú","Û","Ü","Ý","à","á","â","ã","ä","å","ç",_
                 "è","é","ê","ë","ì","í","î","ï","ñ","ò","ó","ô","õ","ö","ù","ú","û","ü","ý","ÿ")
aRemplace = Array("A","A","A","A","A","C","E","E","E","E","I","I","I","I","N","O",_
                 "O","O","O","O","U","U","U","U","Y","a","a","a","a","a","a","c",_
                 "e","e","e","e","i","i","i","i","n","o","o","o","o","o","u","u","u","u","y","y")
aTabCount = 0
' on exécute la macro sur la feuille courante
osheet = odoc.CurrentSelection.Spreadsheet
'oSheet = oDoc.getSheets.getByName(oDoc.CurrentSelection.Spreadsheet.Name)
SetR = oSheet.createReplaceDescriptor
SetR.SearchCaseSensitive = true
SetR.SearchWords = false '  on cherche les lettres pas les mots
SetR.SearchRegularExpression = true
While aTabCount <= uBound(aTrouve)
SetR.setSearchString(aTrouve(aTabCount))
SetR.setReplaceString(aRemplace(aTabCount))
aTabCount = aTabCount + 1
oSheet.ReplaceAll(SetR)
Wend
End Sub

Et ça marche super...

Réalisé par JP alias Jurassic Pork sur developpez.com


Aucun commentaire:

Enregistrer un commentaire

Tout commentaire nous engage ;)