Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Liste des fichiers dans le répertoire

RollyLCXL

XLDnaute Nouveau
Bonjour,

J'utilise le code sn = Split(CreateObject("wscript.shell").exec("cmd /c dir """ & F & """ /a:-d /b").StdOut.ReadAll, vbCrLf)

Et j'envoi la liste des fichiers du répertoire courant dans une feuille Excel avec le code ... .Resize(UBound(sn) + 1) = Application.Transpose(sn).

Tout se fait parfaitement sauf ceci. Des caractères sont remplacés. Par exemple un fichier nommé Nouveautés.pdf dans le répertoire est renommé Nouveaut,s.pdf.

Il semble que tous les accents sont remplacés par des autres caractères étranges.

Comment faire afin d'obtenir le nom tel que dans l'Explorateurs de Fichiers de Windows?

C'est que cette façon de faire est extrêmement plus rapide qu'avec un Loop.

Merci à l'avance.
 

jurassic pork

XLDnaute Occasionnel
Hello,
avec ce que l'on a découvert, tu devrais pouvoir te passer d ' OemToChar :
VB:
Sub TestDir2()
Dim F, sn, res As String
F = "d:\dev\office\excel"
res = CreateObject("wscript.shell").exec("cmd /c  chcp 1252 > nul  &  cmd /c dir """ & F & """ /a:-d /b").StdOut.ReadAll
sn = Split(res, vbCrLf)
End Sub
et pour patricktoulon : la ligne avec CreateObject semble créer un problème quand on est en debug :
Si je met un point d'arrêt après cette ligne, si j'exécute la procédure , je m'arrête bien sur le point d'arrêt mais je n'ai plus la main dans l'Editeur VBA. Pour débloquer cette situation il faut aller cliquer dans une autre fenêtre de windows. Patrick as-tu ce phénomène ?
Ami calmant, J.P
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour @jurassic pork oui je sais pas si c'est ce dont tu parles
mais en effet si je met un point d'arrêt dans le code ça me renvoi sur la feuille il faut que je retourne dans le VBE par le bouton macro dans le ruban
pour info ca me fait ça aussi avec ADOBD sur le windows fileSearch
 

Discussions similaires

Réponses
19
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…