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

ybosse Messages postés 2 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 23 juillet 2010 - 23 juil. 2010 à 12:20
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 24 juil. 2010 à 21:20
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

ybosse Messages postés 2 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 23 juillet 2010
23 juil. 2010 à 13:28
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 juil. 2010 à 21:20
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)
0
Rejoignez-nous