Copie de caractères chinois dans un fichier txt

Isa

XLDnaute Nouveau
Bonjour,
J'ai créé une macro qui copie le contenu des colonnes d'une feuille Excel vers un fichier texte. Or, certaines de ces colonnes comprennent des caractères chinois. Le résultat obtenu pour ces caratères est '?????', alors que si j'effectue un 'Enregistrer sous' du fichier Excel en choisissant le format .txt Unicode, je récupère bien ces caractères chinois.
La variable qui récupère le contenu d'une cellule est au format string. J'ai essayé tous les types de variables, mais rien n'y fait. Je vous fais parvenir le code ci-dessous.

Pouvez-vous m'indiquer comment récupérer les vrais caractères dans cette variable ?

Je vous remercie pour votre aide.

Isa

_________________________
Sub Generate_docs(Filename As String)

Const k_strSEPAR_LIGNES As String = '|'

Dim lngNbLignesDonnees As Long
Dim strListeLang As String
Dim NbLig, NbCol As Long
Dim CurLig, CurCol As Long
Dim inNumFichier As Integer
Dim Sheet As Worksheet

Sheets(Filename).Select
ActiveSheet.Range('A1').Select
NbCol = Range('A1', Range('A1').End(xlToRight)).Count
NbLig = Range('A1', Range('A1').End(xlDown)).Count

intNumFichier = FreeFile
Open 'c:\\' & Filename For Output As #intNumFichier

Range('A1').Select
For CurLig = 0 To NbLig - 1
strListeLang = ''
For CurCol = 0 To NbCol - 1
strListeLang = strListeLang & Range('A1').Offset(CurLig, CurCol).Text
If CurCol < NbCol - 1 Then
strListeLang = strListeLang & k_strSEPAR_LIGNES
End If
Next CurCol
Print #intNumFichier, strListeLang
Next CurLig

Close #intNumFichier
 
I

Isa

Guest
Bonjour,

En fait, lorsque je fais un 'Add watch' sur Range('A1').Offset(CurLig, CurCol).Text dans mon code, cela me retourne '?????' par contre, lorsque je clique-droit sur la cellule contenant le caractère chinois et que je fait 'Add watch', cela me retourne bien le vrai contenu de la cellule à savoir le caractère chinois (voir copie d'écran ci-jointe).
Pourquoi je n'obtiens pas le même résultat dans les 2 cas ? Exite-t-il une autre propriété que .value ou .text qui puisse récupérer le vrai contenu d'une cellule ?

Merci beaucoup pour votre aide.

Isa
 
I

Isa

Guest
Bonjour Pascal,

Le format de la cellule est pourtant approprié : il est dans la catégorie 'spécial' avec le type 'Chinois RPC' (voir copie d'écran ci-jointe). Je ne vois pas ce qu'il faut que je fasse de plus.

Merci pour votre réponse.

Isa
 
I

Isa

Guest
Bonjour José,

J'ai essayé le code, par contre, je suis obligée de reconvertir en CHR car tous les caractères sont codés en ASCII et donc incompréhensibles. Aussi, le bout de code rajouté est :
For x = 1 To Len(.Range('A1').Offset(CurLig, CurCol).Text)
strToto = AscB(Mid(.Range('A1').Offset(CurLig, CurCol).Text, x, 1))
strListeLang = strListeLang & Chr(strToto)
Next x

Par contre, cela ne me donne pas le bon résultat : en effet, le code ASCII des caractères ne correspond pas à des caractères chinois mais voici le résultat : exemple : ¢éÓ¢ž

Lang_id|1033|1041|
1025|Arabic (Saudi Arabia)|¢éÓ¢ž|
1028|Chinese Traditional|-ýž(ð~)|
1030|Danish|Çüóž|
1031|German (Germany)|ɤĞ|
1032|Greek|®ê·¢ž|
1033|English (U.S.)|ñž(sý)|

au lieu de :
Lang_id|1033|1041
1025|Arabic (Saudi Arabia)|アラビア語
1026|Bulgarian|ブルガリア語
1027|Catalan|カタラン語
1028|Chinese (Taiwan)中国語(台湾)
1029|Czech|チェコ語
1030|Danish|デーン語
1031|German (Germany)|ドイツ語
1032|Greek|ギリシア語
1033|English (U.S.)|英語(米国)

Je ne vois pas comment je peux m'en sortir.

Merci pour votre aide. Si vous avez des idées supplémentaires, elles sont vraiment les bienvenues.

Isa
 
I

Isa

Guest
Merci beaucoup José de t'être trituré la cervelle !! Pas trop mal ?:sick: En tout cas, j'apprécie le temps que tu y as passé.
Je teste et te tiens au courant.

... tout ça pour satisfaire les chinois ... pfff, tu verras, ils nous auront !!:)

A + !

Isa
 

Taebo

XLDnaute Nouveau
Re : Copie de caractères chinois dans un fichier txt

Bonjour Isa, Salut Pascal,
Le Forum

Ce fil m'intéresserait bvp, mais je ne vois que les messages de Isa et de PascalXld??? Est-ce parce que ce fil est trop vieux???? (7 ans tout de même)
 

Discussions similaires

Réponses
2
Affichages
536

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG