Utilisation caractère chinois en VBA [Résolu]

Taebo

XLDnaute Nouveau
Bonjour tous,
Le Forum,

Voilà: Par VBA je créé un répertoire (et des dossiers) en les enregistrant dans le même répertoire que mon fichier.
en code ça donne ça:
Code:
     Chemin1 = ThisWorkbook.Path & "\"
     Chemin2 =  Cells(1,1).value   
       
     MkDir Chemin1 & Chemin2

Maintenant il se trouve que certaines fois, ThisWorkbook.path inclue des caractères chinois, et la c'est le drame....
L'erreur m'indique qu'il les traite comme des ? , ce qu'il veut clairement dire qu'il ne gère pas ce genre de caractères

Je sais qu'on peut passer par UNICODE, mais les seuls infos que j'ai trouvée sont des solution un peu "bout-d'bois". Je suis pas mal en contact avec des caractères chinois ces temps puisque je bosse en Chine depuis 1 mois, donc gérer des string :D en chinois me serait assez utile.

Merci les gars
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Utilisation caractère chinois en VBA

Bonjour le gars


Je pense que le mieux serait d'aller poser la question sur un forum excel chinois... Ou te procurer une version chinoise d'excel ? (il y a des packs de langue, payants mais qui te permettent de traduire un excel français vers une autre langue
Téléchargements de packs linguistiques LIP (Language Interface Pack) d
Une piste peut être :
Est-ce que tu as installé le chinois dans les langages par défaut dans excel ? (je ne sais pas si ça y fait quelque chose, je n'ai aucune connaissance en chinois et je n'ai jamais testé)

(PS y a des filles aussi qui touchent aux ordinateurs autrement que pour faire les poussières...)
 

chris

XLDnaute Barbatruc
Re : Utilisation caractère chinois en VBA

Bonjour
Coucou Misange :)

Mkdir est trop vieux je pense pour UNICODE
Il faut passer par le FileSystemObject (référence à installer)

Code générique trouvé sur Microsoft VBA - Visual Basic for Applications - Checking if a file exists.
Code:
Function CreateFilePath(ByVal FPath As String) As Boolean
Dim FSO As FileSystemObject
Dim ParsedPath As Variant
Dim TempPath As String
Dim i As Long

   On Error Resume Next
   Set FSO = New FileSystemObject
   ParsedPath = Split(FPath, "\")
   TempPath = ParsedPath(0)
   For i = 1 To UBound(ParsedPath)
     TempPath = TempPath & "\" & ParsedPath(i)
     FSO.CreateFolder (TempPath)
   Next i
   CreateFilePath = FSO.FolderExists(FPath)
   Set FSO = Nothing
   
End Function

J'ai testé sur Win 7 et Excel 2010 : cela marche (ayant réalisée une appli qui génère des pages HTML en chinois j'avais des caractères sous la main 标题页 )
 

Taebo

XLDnaute Nouveau
Re : Utilisation caractère chinois en VBA

Bonjour Misange, Chris, le Forum

@Misange: J'ai en fait un ordinateur chinois/anglais ici donc tout les packs sont déjà dedans.

@Chris: Merci pour cette référence, je m'en suis sorti comme ça. Effectivement ce coup-ci il gère les caractères chinois.

Si cela vous intéresse, voici mon boût de code:

Code:
On Error GoTo err
Dim oFSO As Scripting.FileSystemObject
Dim oFld As Folder

'Instanciation du FSO
Set oFSO = New Scripting.FileSystemObject
'Créé le repertoire
Set oFld = oFSO.CreateFolder(ThisWorkbook.Path & "\" & Range("A1"))

GoTo Lasuite
    
err:
        Select Case err.Number
            Case 58: MsgBox "Le dossier existe déjà"
            Case 76: MsgBox "Chemin incorrect"
            Case Else: MsgBox "Erreur inconnue"
        End Select
        Exit Sub

Lasuite: