[R] Fonction SaveAs + Date dans nom de fichier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Gosdog
Niveau 1
Niveau 1
Messages : 3
Enregistré le : ven. 06 juil. 2012 10:41
Status : Hors ligne

[R] Fonction SaveAs + Date dans nom de fichier

#1

Message par Gosdog »

Bonjour à tous,

J'ai un souci dans mon script, et je n'en comprend pas l'origine. Je m'explique : Dans le cadre de mon travail, je dois créer un automate injectant des données provenant d'un fichier Excel (que nous nommerons X). L'automate récupère les données du fichier X pour simuler une saisie "humaine" dans une autre application. Celle-ci renvois alors un résultat qui est récupéré sous forme de texte et inséré dans le fichier X (dans d'autre colonnes). Une fois ce traitement effectué, le fichier X est enregistré sous le nom de fichier Y (et à un autre endroit dans l'arborescence, afin de distinguer la source entrée/sortie).

Mon problème se situe dans la phase d'enregistrement finale. Étant donné que le script sera utilisé régulièrement, je cherche à insérer la date dans le nom du fichier Y à enregistrer (meilleur gestion des docs sur le long terme). Et là c'est le drame.

· J’arrive à enregistrer mon fichier Y sans problème tant que le nom de celui-ci est en dur (Fonction ActiveWorkBook.SaveAs) ==> test unitaire
· J’arrive à récupérer la date et l’afficher dans une MsgBox (pour test unitaire de ma fonction) ==> test unitaire
· J’arrive à concaténer l’ensemble pour l’afficher dans une MsgBox =>> test unitaire
· Mais le script plante lorsque je combine la fonction SaveAs et la chaîne de caractère contenant la date système.

Une/des idées ?
Merci par avance
Lény

Pour plus de compréhension, ci joint la partie de code correspondante :

Code : Tout sélectionner

#include <Excel.au3>
#include <Date.au3>

$chemin_relatif = @WorkingDir&"\Fichier en sortie\TNR au "&@MDAY & ' ' & @MON & ' ' & @YEAR & @CRLF&".xls" 
$oExcel.Application.DisplayAlerts = 0                                   
$oExcel.Application.ScreenUpdating = 0
$oExcel.ActiveWorkBook.SaveAs($chemin_relatif, 1, Default, Default, Default, Default, 2, 1)
$oExcel.Quit
Modifié en dernier par Gosdog le ven. 06 juil. 2012 16:22, modifié 1 fois.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Fonction SaveAs + Date dans nom de fichier

#2

Message par timmalos »

Essayez peut etre comme ceci:

Code : Tout sélectionner

$oExcel.ActiveWorkBook.SaveAs("'"&$chemin_relatif&"'", 1, Default, Default, Default, Default, 2, 1)
Gosdog
Niveau 1
Niveau 1
Messages : 3
Enregistré le : ven. 06 juil. 2012 10:41
Status : Hors ligne

Re: [..] Fonction SaveAs + Date dans nom de fichier

#3

Message par Gosdog »

Bonjour Timmalos,

Je viens d'essayer la correction que tu m'as suggérée, cependant le problème demeure.
L'erreur générée par le script est la suivante (la même qu'avant) :

Code : Tout sélectionner

Error : The requested action with this object has failed
Ce code erreur ne m'évoque rien, mais je reconnais être encore novice sous AutoIt. Cette erreur évoquerait-elle quelque chose pour toi ?

Je sais qu'AutoIt est un langage souple vis à vis des déclarations de variables; néanmoins est ce qu'un "parsage" Time>String serait nécessaire (et possible) dans ce cas là ?

Lény
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Fonction SaveAs + Date dans nom de fichier

#4

Message par timmalos »

Non pas besoin de caster vos variables.

Par contre je viens de voir que vous inserez des espaces entre vos dates, hors c'est un caractere interdit par Windows pour les noms de fichier, l'erreur vient certainement de la. Remplacez par un underscore ou un truc du genre accepté par Windows.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Fonction SaveAs + Date dans nom de fichier

#5

Message par timmalos »

Faut virer egalement le @CRLF, un fichier ne peut pas avoir un retour à la ligne comme nom :P
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Fonction SaveAs + Date dans nom de fichier

#6

Message par TommyDDR »

timmalos a écrit :Par contre je viens de voir que vous inserez des espaces entre vos dates, hors c'est un caractere interdit par Windows.
Il faudra m'expliquer sur quel windows tu tourne timmalos :lol:
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Fonction SaveAs + Date dans nom de fichier

#7

Message par sksbir »

timmalos a écrit :Non pas besoin de caster vos variables.
Par contre je viens de voir que vous inserez des espaces entre vos dates, hors c'est un caractere interdit par Windows pour les noms de fichier, l'erreur vient certainement de la. Remplacez par un underscore ou un truc du genre accepté par Windows.
L'espace est tout a fait autorisé dans le nom du fichier.
timmalos a écrit :Faut virer egalement le @CRLF, un fichier ne peut pas avoir un retour à la ligne comme nom :P
oui, ça par contre, c'est le problème.

donc CRLF, sachant que

Code : Tout sélectionner

" \ / : | < > * ?
sont également interdits.
Gosdog
Niveau 1
Niveau 1
Messages : 3
Enregistré le : ven. 06 juil. 2012 10:41
Status : Hors ligne

Re: [R] Fonction SaveAs + Date dans nom de fichier

#8

Message par Gosdog »

Merci beaucoup, ça fonctionne !!
C'était bien le "@CRLF" qui posait problème. Effectivement un retour à la ligne dans le nom d'un fichier n'est pas des plus courant :lol:

Pour info, il est possible de mettre des espaces dans le nom d'un fichier, Windows ne se rebelle pas si on le fait (testé et approuvé).

Encore merci du temps consacré à mon problème et très bonne continuation.
Lény
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Fonction SaveAs + Date dans nom de fichier

#9

Message par timmalos »

J'ai fumé moi :lol:
Mais vaut mieux eviter on va dire ::
Puis j'ai quand même donné la solution , alors :twisted:

n'oubliez pas de passer votre post en résolu par la même occasion.
Répondre