Les problèmes liés aux styles dans Excel

Si vous trouvez qu'Excel met en forme les cellules ou les nombres de façon inattendue, c'est certainement que vous avez un problème de style. Voici deux exemples pour illustrer ce phénomène... et surtout, la solution !

Les nombres saisis sont formatés en monnaie: $1.00

Cela peut se produire avec n'importe quel autre format tout nombre saisi se transforme en date, en monnaie, heure etc... Même si vous sélectionnez toutes les feuilles et cellules et changer le format en "général", toute nouvelle feuille ajoutée retrouvera ce comportement curieux et surtout irritant.

Un format particulier (pourcentage, monnaie, ...) applique une couleur de fond ou de police à la cellule.

Voici un autre exemple tout aussi étrange et irritant lorsqu'on le rencontre pour la première fois. Vous recevez un classeur d'un collègue et lorsque vous sélectionnez un format à partir de la section nombre, une couleur est appliquée à la police, au fond de la cellule ou encore une bordure etc...

La Solution: réinitialiser les styles

La solution générale à ce problème est de réinitialiser les styles. Dans l'exemple 1, le style normal peut avoir été redéfini de sorte d'appliquer un format par défaut aux nombres. Dans la capture d'écran vous observez que le style appliqué est "Normal", mais que le format de nombre est "currency" dans ma version anglophone. Ceci est le cas pour toutes les cellules et feuilles du classeur, y compris celle que l'on pourrait ajouter par la suite. Il faut donc re-paramétrer ceci:

  1. Cliquez sur Styles de cellules
  2. Cliquez droit sur Normal puis Modifier...
  3. Cliquer sur Format... et appliquez les réglages suivants:
    • Onglet Nombre: Standard
    • Onglet Alignement: horizontal: standard, vertical: bas
    • Onglet Police: comme vous le souhaitez
    • Onglet Bordure: pas de bordure
    • Onglet Remplissage: pas d'ombrage
    • Onglet Protection: vérouillé
  4. Cliquez sur OK et vérifiez le résumé.
  5. Cliquez de nouveau sur OK

Voilà, le format par défaut est maintenant rétabli. Cela corrige les problèmes similaires au premier exemple. Dans le cas du deuxième exemple, la solution est un peu différente.

Dans le cas de styles par défaut appliquer en même temps que les formats de nombre, il faut corriger non pas le style "normal" mais les styles listés dans la catégorie "Format de Nombre":

  • Milliers
  • Milliers [0]
  • Monétaire
  • Monétaire [0]
  • Pourcentage

Voici la procédure à suivre:

  1. Cliquez sur Styles de cellules
  2. Cliquez droit sur Pourcentage puis Modifier
  3. Décochez tous les Styles sauf le premier (Nombre)
  4. Cliquez sur OK 

Une dernière solution radicale: effacer tous les styles et les importer les styles par défaut

Dans certains cas la situation est tellement catastrophique qu'il est plus rapide d'effacer les styles qui ont bien souvent été générés par l'import successif de feuilles en provenance de différent classeur et de réimporter des styles propres. Cependant, attention car cela peut engendrer des pertes de format sur les différentes feuilles du classeur concerné. En effet, si un style a par exemple été appliqué aux titres de vos tableaux, la suppression du style entraînera la suppression du formatage des titres. Mais il reste malgré tout souvent plus efficace de procéder ainsi et de remettre tous les styles à la main.

Voici une macro VBA qui vous permettra d'effacer les styles et d'importer les styles par défaut. Pensez à travailler sur une sauvegarde de votre fichier.

Sub Prc_ResetStyles()
    
    'Macro created by Curuba: www.curuba.fr
    
    Dim Z_Style As Style
    Dim Z_ThisWorbook As Workbook
    Dim Z_DefaultWorbook As Workbook
    Dim Z_Check As Integer
    
    Set Z_ThisWorbook = ThisWorkbook
    
    Z_Check = MsgBox("Cette macro va remttre à zéro les styles du _
          classeur suivant: " & Z_ThisWorbook.Name, vbOKCancel)
    If Z_Check = vbCancel Then
        Exit Sub
    End If
    
    For Each Z_Style In ActiveWorkbook.Styles
        If Not Z_Style.BuiltIn Then
            Z_Style.Delete
        End If
    Next Z_Style
    
    Set Z_DefaultWorbook = Workbooks.Add
    
    Application.DisplayAlerts = False
    Z_ThisWorbook.Styles.Merge Workbook:=Z_DefaultWorbook
    Z_DefaultWorbook.Saved = True
    Z_DefaultWorbook.Close
    Application.DisplayAlerts = True
End Sub

 

Pour information, voici où trouver des informations sur l'objet "style" : http://msdn.microsoft.com/en-us/library/bb245407(v=office.12).aspx