[Catégorie modifiée .Net --> VBA] Code caractère Unicode à convertir en string

Signaler
Messages postés
2
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
23 juillet 2010
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour,

je cherche un moyen via Excel et via VBA pour convertir cette chaine :

0054 0049 0045 0030 0030 0035 0031 0033

en un texte lisible (cette suite donne notament "TIE00513")

Je reste complètement sec point de vue solution via les fonctions :
- StrConv
- AscW
- CharW

J'ai parcouru tous le forum en quête de solutions, mais rien a faire, même avec des petits bout par ci par là, je n'arrive pas a le faire.

Merci d'avance pour votre aide
(Office Excel 2003)

2 réponses

Messages postés
2
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
23 juillet 2010

Public Function Unicode(Valbrut As String) As String

Dim MyHexa As Byte

OneCar = 4
MyLen = Len(Valbrut) / OneCar
Counter = 0

While Counter < MyLen
W_Code = Mid(Valbrut, (Counter * OneCar) + 3, OneCar / 2)
MyHexa = "&H" & W_Code
Unicode = Trim(Unicode) + ChrW(MyHexa)
Counter = Counter + 1
Wend
End Function


A priori ceci réponds a mon besoin...espérant que ce code puisse aider d'autres personnes
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
Fais attention : dans ton code de résolution, tu ne tiens pas compte du premier octet. Ça va marcher pour l'instant, mais tu risques d'avoir des soucis avec d'autres langues.

Mieux vaudrait convertir, par groupes de 2 bytes, tes données en une chaine String classique.
    Const myDatas As String = "0054 0049 0045 0030 0030 0035 0031 0033"
    Dim r As Long
    Dim sResult As String
    
    sResult = ""
    For r = 1 To Len(myDatas) Step 5
        sResult = sResult & ChrW$("&h" & Mid$(myDatas, r, 4))
    Next r
    MsgBox sResult


Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)