Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

xls en csv avec vbs excel saveas

7 réponses
Avatar
---DGI972---
Bonjour à tous et toutes

Je bute sur un petit Pb.

Je souhaite ouvrir un fichier Excel pour le sauvegarder en csv.
je me suis aidé grace a l'enregistrement d'un macro vba dans excel mais
cela ne fonctionne pas.
Voici le petit bout de code de test
le wk.save fonctionne :D
le wk.saveas etc.. ne fonctionne pas :'(

Dim Xl, Wk
Set Xl = WScript.CreateObject("EXCEL.application")
Xl.Visible = False
Set Wk = Xl.Workbooks.Open("C:\TEST.xls")
Wk.Save
'Wk.SaveAs Filename="C:\TEST.csv", FileFormat=xlCSVMSDOS,
CreateBackup:=False
Wk.Close
Xl.Quit
Set Xl = Nothing
Set Wk = Nothing


merci d'avance.

7 réponses

Avatar
moi
Salut

Effectivement la ligne SaveAs est problématique .
A mon avis Il y a plusieurs pb :

1. la valeur de la constante xlCSVMSDOS
n'est pas connu de VBS
Il faut donc mettre le nombre correspondant qui est 24
http://support.microsoft.com/kb/461271/fr

2. Wk.saveas est précédé de '
est-ce normal ou accidentel ?

3. Le retour de ligne ( anormal)
avant createbackup est-il provoqué
par le lecteur de news ou est-il dans le script ?

4. Je ne pense pas que l'on puisse utiliser les appels du type

Truc.Action Param1:=V1 , Param2:=V2, etc ...

Il faut sans doute se limiter à la syntaxe du type
retour = Truc.action(V1,V2)
ou
Truc.action V1,V2
qui devrait passer ...

CreateBackup:úlse
étant sans doute la valeur par défaut
on doit pouvoir se passer
de ce troisième paramètre dans l'appel.

-> Vérifier l'ordre des paramètres dans l'éditeur VBA
mais ...

Wk.SaveAs "C:TEST.csv", 24

pourrait être bon

dans l'espoir que cela suffise :o)

A+

HB





Je bute sur un petit Pb.

Je souhaite ouvrir un fichier Excel pour le sauvegarder en csv.
je me suis aidé grace a l'enregistrement d'un macro vba dans excel
mais cela ne fonctionne pas.
Voici le petit bout de code de test
le wk.save fonctionne :D
le wk.saveas etc.. ne fonctionne pas :'(

Dim Xl, Wk
Set Xl = WScript.CreateObject("EXCEL.application")
Xl.Visible = False
Set Wk = Xl.Workbooks.Open("C:TEST.xls")
Wk.Save
'Wk.SaveAs Filename="C:TEST.csv", FileFormat=xlCSVMSDOS,
CreateBackup:úlse
Wk.Close
Xl.Quit
Set Xl = Nothing
Set Wk = Nothing


merci d'avance.


Avatar
---DGI972---
Salut

Effectivement la ligne SaveAs est problématique .
A mon avis Il y a plusieurs pb :

1. la valeur de la constante xlCSVMSDOS
n'est pas connu de VBS
Il faut donc mettre le nombre correspondant qui est 24
http://support.microsoft.com/kb/461271/fr

2. Wk.saveas est précédé de '
est-ce normal ou accidentel ?

3. Le retour de ligne ( anormal)
avant createbackup est-il provoqué
par le lecteur de news ou est-il dans le script ?

4. Je ne pense pas que l'on puisse utiliser les appels du type

Truc.Action Param1:=V1 , Param2:=V2, etc ...

Il faut sans doute se limiter à la syntaxe du type
retour = Truc.action(V1,V2)
ou
Truc.action V1,V2
qui devrait passer ...

CreateBackup:úlse
étant sans doute la valeur par défaut
on doit pouvoir se passer
de ce troisième paramètre dans l'appel.

-> Vérifier l'ordre des paramètres dans l'éditeur VBA
mais ...

Wk.SaveAs "C:TEST.csv", 24

pourrait être bon

dans l'espoir que cela suffise :o)

A+

HB





Je bute sur un petit Pb.

Je souhaite ouvrir un fichier Excel pour le sauvegarder en csv.
je me suis aidé grace a l'enregistrement d'un macro vba dans excel
mais cela ne fonctionne pas.
Voici le petit bout de code de test
le wk.save fonctionne :D
le wk.saveas etc.. ne fonctionne pas :'(

Dim Xl, Wk
Set Xl = WScript.CreateObject("EXCEL.application")
Xl.Visible = False
Set Wk = Xl.Workbooks.Open("C:TEST.xls")
Wk.Save
'Wk.SaveAs Filename="C:TEST.csv", FileFormat=xlCSVMSDOS,
CreateBackup:úlse
Wk.Close
Xl.Quit
Set Xl = Nothing
Set Wk = Nothing


merci d'avance.
Oui merci c'est beaucoup mieux, sauf que j'ai un popup qui me dit:



Voulez vous enregistrer les modifications apportées à 'TEST.csv'?
Oui Non Annuler

Il n'a t-il pas moyen de court-circuiter la confirmation ?
A quoi sert le paramêtre ,24 ?

merci encore


Avatar
Jean
Il n'a t-il pas moyen de court-circuiter la confirmation ?


XL.DisplayAlerts = FALSE

voir ici :

http://www.microsoft.com/technet/scriptcenter/resources/qanda/jan05/hey0131.mspx

Amicalement,

--
Jean - JMST
Belgium

Avatar
Jean
A quoi sert le paramêtre ,24 ?


a spécifier le format d'enregistrement du fichier :

voir ici (ou dans la doc excel):
http://www.microsoft.com/technet/scriptcenter/resources/qanda/mar06/hey0307.mspx

Amicalement,

--
Jean - JMST
Belgium

Avatar
moi
Re,

Il n'a t-il pas moyen de court-circuiter la confirmation ?


en mettant qq part

Xl.DisplayAlert = false

ou, plus clean :

wk.saved = true
juste avant
wk.close

A quoi sert le paramêtre ,24 ?


C'est la valeur de la constante xlCVSMSDOS comme je l'indique dans mon
premier mail.
J'ai trouvé ce nombre à l'adresse que je donne dans ce même mail ;o)


A+

HB

Avatar
papou
Bonjour
Ou plus court :
wk.close(True)

Cordialement
Pascal

"moi" a écrit dans le message de news:

Re,

Il n'a t-il pas moyen de court-circuiter la confirmation ?


en mettant qq part

Xl.DisplayAlert = false

ou, plus clean :

wk.saved = true
juste avant
wk.close

A quoi sert le paramêtre ,24 ?


C'est la valeur de la constante xlCVSMSDOS comme je l'indique dans mon
premier mail.
J'ai trouvé ce nombre à l'adresse que je donne dans ce même mail ;o)


A+

HB



Avatar
---DGI972---
Bonjour
Ou plus court :
wk.close(True)

Cordialement
Pascal

"moi" a écrit dans le message de news:

Re,

Il n'a t-il pas moyen de court-circuiter la confirmation ?


en mettant qq part

Xl.DisplayAlert = false

ou, plus clean :

wk.saved = true
juste avant
wk.close

A quoi sert le paramêtre ,24 ?


C'est la valeur de la constante xlCVSMSDOS comme je l'indique dans mon
premier mail.
J'ai trouvé ce nombre à l'adresse que je donne dans ce même mail ;o)


A+

HB



SUPER,
Merci à tous, à toutes cela fonctionne.
Je continue sur ma problématique a bien tôt peut être (surement ...)
DGI972