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
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Peut-être une question idiote mais ne faudrait-il pas remettre le format de police approprié après avoir fait la copie dans la feuille excel ??

Bonne journée

PS: Peut-être bon pour le ZOP là
 
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
 
I

Isa

Guest
Salut José,

Super, ça fonctionne du tonnerre ! Bravo, t'es le meilleur.

Encore merci !

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)
 

PAYEN

XLDnaute Nouveau
Bonjour,
je sèche sur un problème identique et la solution de José semble être celle dont j'ai besoin ? Comment puis-je l'obtenir ?
Merci
 

Discussions similaires


Haut Bas