Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XLS : Fonctionnement des chiffres Unicode

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Lu76Fer

XLDnaute Occasionnel
Les chiffres Unicode
C'est en manipulant des caractères Unicode simple que je me suis aperçu que le symbole affiché dans une cellule n'était pas le bon. En creusant, je me suis aperçu qu'en affectant certain Unicode à une cellule Excel ceux-ci se changeait en code Ascii. En faite, c'est le format qui bascule de "Standard" vers un format Nombre quand le symbole Unicode est considéré comme un chiffre.​
Pour une raison pratique, les chiffres sont toujours manipulés avec des codes Ascii de 48("0") à 57("9") du coup un symbole Unicode chiffré est converti en symbole Ascii mais pour afficher ce nombre selon la langue ou la zone territoriale un préfixe est ajouté au format nombre; par exemple : [$-pa-IN,600] pour l'Inde.​

En cherchant de la documentation sur le Net, j'ai trouvé très peu d'élément sur le sujet, du coup je partage ma synthèse de tout cela :
La page ci-dessus est en thaïlandais, pour avoir la traduction automatique sous Chrome, allez dans Paramètres -> Langues -> Google Traduction, puis ajoutez thaï dans les langues à traduire automatiquement.

Voici une synthèse des données réunies avec tous les formats, les langues et les chiffres Unicode :


Pour avoir le tableau complet des chiffres Unicode, ce petit bout de code permet de scanner tous les codes en testant chacun pour savoir s'il change de code. A exécuter depuis une feuille vierge (je ne parle pas de feuille A4 😉).
VB:
'Permet de scanner tous les Unicodes pour savoir quelles sont les symboles interprétés
'en tant que chiffre à partir d'une feuille vierge
Sub ScanUnicode() 'Durée #1 minutes
Dim sChr$, yChr(1) As Byte, iCode%, iCharset%, £crt As Range
Dim y() As Byte, iCrtCharset%, iPos%
   Set £crt = [B1]
   For iCharset = 0 To 255
      yChr(1) = iCharset
      For iCode = 0 To 255
         yChr(0) = iCode: sChr = yChr
         [A1] = sChr: DoEvents
         sChr = [A1]: y = sChr
         If sChr <> "" Then
            If y(1) <> iCharset Or y(0) <> iCode Then
               If iCrtCharset <> iCharset Then Set £crt = £crt.Offset(1): iPos = 0: £crt = iCharset: iCrtCharset = iCharset
               iPos = iPos + 1: £crt.Offset(, iPos) = iCode & " (" & CStr(y(1) * 256 + y(0) - 48) & ")" 'y(0)
               [A1].NumberFormat = "General"
            End If
         End If
      Next iCode
   Next iCharset
   [A1] = "": [B1] = "Charset": [C1] = "Codes"
End Sub

J'ajoute également le classeur Excel contenant le tableau avec les chiffres formatés ainsi qu'un tableau avec les cellules au format texte(@) comportant directement chaque symbole Unicode.
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…