Bonjour à tous !
Je vous vois déjà me dire que ce sujet à été traité à plusieurs reprise mais j'ai écumé plusieurs discussion et même plusieurs forum sans succès...
Je commence à utiliser le VBScript pour manipuler une quantité certaine de fichiers au format xlsx (2300) et les enregistrer au format CSV(séparateur point-virgule), après 2 semaines à me casser la tête à comprendre les différence entre le VBA, le VB et le VBS (merci au tutos du site d'ailleurs), j'ai réussi à assembler des bouts de code pour faire ce que j'avait envie.
Le script fonctionne enfin, mais les fichiers que j'obtiens ne sont pas séparés par les bon séparateurs, et je ne sais pas pour quelle raison, ils s'enregistrent dans mes documents (alors qu'avant ils s'enregistraient dans le dossier Temp)
Voici le code que j'utilise :
J'ai donc essayé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Dim Systeme, Dossier, Fichiers, Fichier, Nom_Dossier, Nom_Fichier Nom_Dossier = "C:\Users\Philippe\Desktop\Temp\Test" Set Systeme = CreateObject("Scripting.FileSystemObject") Set Dossier = Systeme.GetFolder(Nom_Dossier) Set Fichiers = Dossier.Files Dim xlWb, i, j: i=1: j=Fichiers.Count Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False xlApp.DisplayAlerts = False For each Fichier In Fichiers If i<=j-2 Then 'Le -2 s'explique par une différence que me done le "Fichiers.Count" et le nombre réel de fichier dans mon dossier. J'ai fais cette boucle parce que le script essayait d'ouvrir les fichier "caché" qui accompagne l'ouverture d'un fichier dans Microsoft Office... If StrComp(Systeme.GetExtensionName(Fichier.Name), "xlsx", vbTextCompare) = 0 Then Nom_Fichier = Nom_Dossier & "\" & Fichier.Name Set xlWb = xlApp.Workbooks.Open (Nom_Fichier) xlApp.ActiveWorkbook.SaveAs,6,Local=True xlApp.ActiveWorkbook.Close savechanges=False i=i+1 End If End If Next xlApp.DisplayAlerts = True xlApp.Quit Set xlWb = Nothing Set xlApp = Nothing
- Le paramètre "local=True" qui ne change rien, j'ai vérifié mes paramètres régionaux
- Les différents format de sauvegarde (valeur 6, 22, 23, 24) (D'ailleurs, quand j'écris "xlCSV" cela ne fonctionne pas, il faut absolument mettre la valeur numérique)
- J'ai bien essayé de ne pas enregistrer les modifications sur le néo-fichier csv avec le "savechanges=false"
- J'ai également remarqué des problèmes de fichiers qui sont en lecture seule après que le script ai fonctionné. Je n'ai pas encore creusé de ce côté là excepté de vérifier avant l'ouverture de mes fichiers, qu'il étaient bien tous non limité en écriture...
Je désespère un peu, il me manque un gros background, j'en suis conscient... Mais je suis un peu pressé par le temps, j'ai eu la flemme de faire les 2300 fichier à la main, mais finalement ça m'aurait peut-être pris moins de temps...
Merci d'avance pour l'aide et vos réponses !!
Partager