Réponses:
Essayez ce format personnalisé:
#0"g" #0"s" 00"c"
Notez que ceci affichera les trois "unités" quel que soit le montant réel. Il 12
sera donc affiché sous la forme "0g 0s 12c". Si vous voulez seulement afficher la plus grande "unité" avec un montant différent de zéro ( 12
"12c", 598
"5s 98c", etc.), vous pouvez le modifier comme suit pour appliquer différents formats en fonction de la valeur:
[>=10000]#0"g" #0"s" 00"c";[>=100]#0"s" 00"c";#0"c"
Ce n'est pas parfait, par exemple, 10245
il sera indiqué par "1g 02s 45c", plutôt que "1g 2s 45c", car il divise simplement la valeur de la cellule plutôt que de le diviser par 100 pour obtenir les montants individuels, mais cela ne devrait pas être le cas fais ce que tu veux.
Pour gérer les valeurs négatives, vous devrez combiner le format ci-dessus avec la mise en forme conditionnelle, car Excel ne peut avoir que 3 conditions dans un seul format numérique. Essayez ce qui suit (je suppose qu'Excel 2010 devrait également fonctionner en 2007, mais pas certain des versions précédentes):
=A1>=0
, puis cliquez sur "Format ..."[>=10000]#0"g" #0"s" 00"c";[>=100]#0"s" 00"c";#0"c"
=A1<0
, puis cliquez sur "Format ..."[<=-10000]-#0"g" #0"s" 00"c";[<=-100]-#0"s" 00"c";#0"c"
Si vous devez modifier ou supprimer les règles de mise en forme, ou les développer pour les appliquer à plusieurs cellules, allez simplement dans "Mise en forme conditionnelle" → "Gérer les règles".
Une autre option consiste à utiliser une fonction VBA pour formater les valeurs. Appuyez sur Alt+ F11pour ouvrir l'éditeur VBA, cliquez avec le bouton droit de la souris dans la fenêtre Projet et sélectionnez Insérer → Module, puis collez le code suivant (bien sûr, l'une des nombreuses façons d'écrire une telle fonction):
Function MyFormat(intValue)
Dim strReturn As String
If intValue < 0 Then strReturn = "-"
intValue = Abs(intValue)
If intValue > 10000 Then
strReturn = strReturn & Fix(intValue / 10000) & "g"
intValue = intValue - (Fix(intValue / 10000)) * 10000
End If
If intValue > 100 Then
If Len(strReturn) > 0 Then strReturn = strReturn & " "
strReturn = strReturn & Fix(intValue / 100) & "s"
intValue = intValue - (Fix(intValue / 100)) * 100
End If
If Len(strReturn) > 0 Then strReturn = strReturn & " "
strReturn = strReturn & intValue & "c"
MyFormat = strReturn
End Function
Cette approche vous offre une plus grande flexibilité que l’utilisation de formats de nombres personnalisés, et elle est plus facile à utiliser que la gestion de règles de mise en forme conditionnelles - il suffit de taper à la =MyFormat(12345)
place de 12345
. L'inconvénient est que vous perdez la possibilité d'effectuer des opérations mathématiques avec les données, car Excel voit maintenant les valeurs sous forme de texte et non de chiffres.
Le format personnalisé suivant fera ce que vous voulez:
??\g ??\s ??\c