1 pièce(s) jointe(s)
Problème script VBA de conversion/enregistrement d'un fichier CSV en XLS
Bonjour à tous,
Ce problème viens à la suite du script qu'on m'avait demandé de faire auparavant :
Voici les faits :
- Un fichier de données financières en .csv généré automatiquement=intouchable --> FRP.csv
- Un fichier de données financières en .txt généré automatiquement=intouchable --> SAP.txt
Je fait une comparaison des deux fichiers (ligne par ligne de FRP.csv et vérifier si on trouve une donnée similaire dans SAP.txt)
Cette partie est OK.
Mon script fais la vérification, me renvoi ce que je veux sous la forme d'un fichier .csv... Et c'est là tout le problème !
Les utilisateurs de ce script on besoin d'un résultat sous la forme d'un fichier excel (.xls ou .xlsx).
J'ai donc enregistré une macro pour l'appeler dans mon script BATCH et faire la conversion, mais tout ne se passe pas comme prévu ! :(
Voici mon script BATCH :
Code:
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
@echo off
setlocal enableextensions enabledelayedexpansion
chcp 28591 >nul
:: -------------------------------------------------------
:: on definit l'arborescence et les fichiers
:: -------------------------------------------------------
set PATH1=D:\Users\carpentierant\Desktop\test_rappro\
set PATH2=D:\Users\carpentierant\Desktop\test_rappro\temp\
set PATH3=D:\Users\carpentierant\Desktop\test_rappro\archives\
set PATH4=D:\Users\carpentierant\Desktop\test_rappro\depot\
set frp=%PATH2%frp.csv
set sap=%PATH4%sap.txt
:: -------------------------------------------------------
:: on teste l'existence du dossier "archives"
:: -------------------------------------------------------
cd /d %PATH3% || exit /b 1
:: -------------------------------------------------------
:: on vide le dossier "archives"
:: -------------------------------------------------------
>nul del /f /q "%PATH3%*.*"
:: -------------------------------------------------------
:: on convertit le fichier Excel en .CSV
:: -------------------------------------------------------
OpenConvert.vbs %PATH4%frp.xls !frp! /w
echo ====================================================
echo Rapprochement FRP - SAP
echo ====================================================
for /f "usebackq delims=" %%a in ("!frp!") do (
echo.
for /f "tokens=14 delims=;" %%i in ("%%~a") do (
set "var2=%%i"
set "var2=!var2:~5,-3!"
FINDSTR /C:"!var2!" !sap! && echo %%a >> %PATH3%TROUVE_IN_SAP.txt || echo %%a >> %PATH3%NON-TROUVE_IN_SAP.csv
set var2=
)
)
%PATH1%script.vbs %PATH3%NON-TROUVE_IN_SAP.csv %PATH3%NON-TROUVE_IN_SAP /w
pause
timeout /t 10
explorer /select,"%PATH3%NON-TROUVE_IN_SAP.csv"
exit /b 0 |
Et mon Script VBA (.vbs) de conversion XLS -> CSV :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
if WScript.Arguments.Count < 2 Then
WScript.Echo "Erreur! Specifiez le chemin racine du fichier. Usage: XlsToCsv SourcePath.xls Destination.csv"
Wscript.Quit
End If
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
oBook.SaveAs WScript.Arguments.Item(1), 6,,,,,,,,,,True
oBook.Close False
oExcel.Quit
WScript.Echo "Done" |
Et mon Script VBA (.vbs) de conversion CSV -> XLS :
Code:
1 2 3 4 5 6 7 8 9
|
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
oBook.SaveAs WScript.Arguments.Item(1), 8,,,,,,,,,,True
oBook.Close False
oExcel.Quit
WScript.Echo "Done" |
Le message d'erreur :
Pièce jointe 442341
Actuellement je suis bloqué sur le message d'erreur.
Merci par avance pour toute l'aide que vous pourrez m'appporter.
R. S.