Bonjour à vous, J'ai réutiliser la macro de Mr Bruno MOUTOUH pour enlever les styles personnalisés lors d'une migration de document.
REM ***** BASIC ***** Option Explicit Dim Dialogue As Object Sub Main OuvrirDiag End Sub ' Auteur : Bruno MOUTOUH <[EMAIL PROTECTED]> ' Source : http://fr.openoffice.org/servlets/ReadMsg?list=dev&msgNo=16448 Sub SupprimerStylesWW() Dim monDocument As Object Dim lesFamilles As Object, uneFamille As Object Dim styleX As Object, liste As String, nomFam As String Dim f As integer, x As integer, nbSupp as integer dim aSupp() as string, nbStyles as integer const BOUTON_OUINON = 4 const BOUTONDEFAUT_NON = 256 const ICONE_QUESTION = 32 const CHOIX_NON = 7 if msgbox("Supprimer tous les styles commençant par WW ?",BOUTON_OUINON+BOUTONDEFAUT_NON+ICONE_QUESTION)= CHOIX_NON then exit sub endif monDocument = ThisComponent lesFamilles = monDocument.StyleFamilies for f = 0 to lesFamilles.Count -1 ' chaque famille nomFam = lesFamilles.ElementNames(f) if (nomFam="ParagraphStyles" or nomFam="CharacterStyles" or nomFam="NumberingStyles") then uneFamille = lesFamilles.getByName(nomFam) nbStyles = uneFamille.count for x = 0 to nbStyles -1 ' chaque style de cette famille styleX = uneFamille(x) if left(styleX.Name,2)="WW" then nbSupp=nbSupp+1 redim preserve aSupp(nbSupp+1) aSupp(nbSupp) = styleX.Name endif next x endif ' suppression des styles WW de cette famille for x=1 to nbSupp uneFamille.removeByName(aSupp(x)) next x msgbox str(nbSupp)+" styles supprimés dans la famille "+ nomFam nbSupp = 0 redim aSupp(0) next f End Sub Sub OuvrirDiag DialogLibraries.LoadLibrary("AlienStyle") 'Boite de dialogue AlienStyle Dialogue = createUNODialog(DialogLibraries.AlienStyle.Dialog1) 'Affichage de la boite de dialogue Dialogue.execute() End Sub Sub Bouton_OK 'Suppression des styles en WW If (Dialogue.getControl("CheckBoxWW").State) Then SupprimerStylesWW End If 'Suppression des styles de caractère personnalisés If (Dialogue.getControl("CheckBoxCaractere").State) Then MsgBox "Suppression des styles personnalisés de caractère" SuppStyle("CharacterStyles") End If 'Suppression des styles de paragraphe personnalisés If (Dialogue.getControl("CheckBoxParagraphe").State) Then MsgBox "Suppression des styles personnalisés de paragraphe" SuppStyle("ParagraphStyles") End If 'Suppression des styles de pages personnalisés If (Dialogue.getControl("CheckBoxPage").State) Then MsgBox "Suppression des styles personnalisés de page" SuppStyle("PageStyles") End If 'Suppression des styles de liste personnalisés If (Dialogue.getControl("CheckBoxListe").State) Then MsgBox "Suppression des styles personnalisés de liste" SuppStyle("NumberingStyles") End If Dialogue.endExecute() End Sub Sub Bouton_Annuler Dialogue.endExecute() End Sub 'Supprime les styles personnalisés Sub SuppStyle(StyleType As String) Dim familleStyle As Object Dim i As Integer familleStyle = thisComponent.StyleFamilies.getByName(StyleType) For i=familleStyle.count-1 to 0 Step -1 If(familleStyle.getByIndex(i).isUSerDefined()) Then familleStyle.removeByName(familleStyle.getByIndex(i).displayName) End If Next i End Sub Si vous avez des suggestions, améliorations ;-) Par exemple, au lieu de supprimer un style de paragraphe le remplacer par un style d'OpenOffice.org correspondant. Petite question pourquoi on ne pas enlever les styles de liste personnalisés ? Même à la main via l'outil "Styles et formatage" . J'ai déposé l'extension ici (renommer en AlienStyle.oxt) : http://www.cijoint.fr/cij88956106725639.zip Merci à vous. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]