Microsoft 365 Comment créer un dossier avec accents ?

Stf34

XLDnaute Nouveau
Bonjour.

J'ai trouvé ici toutes les ressources nécessaires pour mon projet.
Malheureusement je n'ai pas encore trouvé la solution à un souci très simple mais très contrariant :

J'utilise MkDir pour créer des dossiers dont le nom sera déterminé par des cellules.
Dès qu'une valeur de cellule comporte un accent il y a 2 cas possibles :

1/ ça retourne une erreur et le dossier n'est pas créé.
par exemple été retourne 76Chemin d'accès introuvable

2/ les accents sont remplacés par des traits et le dossier est créé avec un nom incorrect
par exemple Trần Phương devient Tr_n Ph__ng

Il est techniquement possible de transformer un texte avec accent vers un texte sans accent
mais je dois absolument garder les accents (il s'agit de noms de personnes, issues de différentes nationalités)

Précision qui a son importance : lorsque je crée un dossier directement sur l'ordinateur avec Trần Phương c'est accepté.
Je suis sur Mac, je n'ai pas la possibilité de tester sur PC.

Existe-t-il une autre méthode pour obtenir un résultat correct ?

Ci-joint un fichier d'exemple

Merci pour votre aide.
 

Pièces jointes

  • Créer Dossier avec accent.xlsm
    24.2 KB · Affichages: 13

Dudu2

XLDnaute Barbatruc
Bonjour,
J'ai récemment découvert ce type de problème.
Ce nom "Trần Phương" que tu utilises contient des caractères Unicode.

Pour t'en convaincre copie le dans un fichier Texte et essaie de l'enregistrer:
1613676984671.png


Les MkDir() et autres Dir() ne savent pas traiter ces caractères dans les noms de répertoires ou de fichiers.
De plus dans l'éditeur VBA tu ne pourras pas placer ces caractères dans un String.

Il faut donc passer par FSO. Et si un tel nom doit être utilisé, il peut être placé dans une cellule qui l'acceptera.

Donc en A1 j'ai placé "Trần Phương"

1613677215392.png


Et dans le code, pour créer le répertoire ou y accéder:
VB:
Sub a()
    Dim oFSO As Object
    Dim oFolder As Object

    'Set objet File system Object
    Set oFSO = CreateObject("Scripting.FileSystemObject")

    'Créer le répertoire
    oFSO.CreateFolder ("F:\TEMP\" & [A1].Value)

    'Accéder au répertoire
    Set oFolder = oFSO.GetFolder("F:\TEMP\" & [A1].Value)
End Sub

Voir la description Microsoft de File System Object ici: https://docs.microsoft.com/fr-fr/of...e/user-interface-help/filesystemobject-object
 

Stf34

XLDnaute Nouveau
Comme je l'ai précisé sur mon premier post, je suis sur Mac et cette méthode ne fonctionne que sur Windows (mais je n'ai pas pu tester)

Existe-t-il une méthode universelle ?

J'ai mis à jour le fichier d'exemple avec le code partiel de mon projet dont la finalité est d'exporter une plage de cellules en pdf (un relevé de notes) dans un dossier qui porte le nom de l'élève, dans le dossier de la classe.

J'ai intégré le code fourni ci-dessus pour la création des dossiers.

L'exportation du pdf fonctionne très bien si les dossiers existent déjà, même avec des accents exotiques.
 

Pièces jointes

  • dossier et pdf avec accent v2.xlsm
    39.6 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 809
dernier inscrit
Sandrine83