SaveAS CSV d'un fichier excel en VBS

Résolu
Aegwym212 Messages postés 5 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 14 août 2008 - 20 mai 2008 à 17:10
Aegwym212 Messages postés 5 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 14 août 2008 - 21 mai 2008 à 18:30
Bonjour, je me lance dans la création de fichier .vbs afin de me faciliter certaine tâche au boulot.
Mon besoin : créer un script vbs qui demande à l'utilisateur des valeurs ( msgbox ), ouvre excel , rentre les valeurs utilisateur ainsi que certaines prédéfini , enregistre ce fichier en .csv à l'endroit voulu.

Voici mon code :

Option Explicit

Sub test()
Dim xls
Dim wkb
Dim sht
Dim WSD
WSD = inputbox("insérez le WSD")

     Set xls = CreateObject("Excel.Application" )
     Set wkb = xls.Workbooks.Add()
     Set sht = wkb.Sheets.Add()
     sht.Cells(1, 1).Value = WSD
     sht.Cells(1, 2).Value = "ADS01"
     sht.Cells(1, 3).Value = "NOI"
     xls.Visible = True
     xls.ActiveWorkbook.SaveAs "C:\test\monfichier.csv"
End Sub

Call test()

Je n'arrive pas à faire comprendre à excel de l'enregistrer en .csv au lieu de .xls. Lorsque j'essais de donner des conditions après le "saveAs" ( format:=xlCSV) il me renvoie une erreur en disant que la valeur xlCSV n'est pas défini ou alor me fait une erreur avant de lancer la création du fichier excel.

Si vous avez la solution n'hésitez pas, ce n'est pas urgent, je continu de chercher en attendant.

Merci

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 mai 2008 à 17:22
Salut
Quand tu te poses ce genre de question, tourne toi vers les macros de Excel :
Lance l'enregistrement d'une nouvelle macro
Fais la manip à la main : Fichier, Enregistrer sous, sélectionne le format de fichier (...)
Arrête la macro
Va jetter un oeil au code généré dans Outils, Macro, Macros, Modifier
Tu connaitra ainsi la syntaxe à utiliser.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
20 mai 2008 à 18:17
 Bonjour,

Option Explicit

Sub test()
Dim xls
Dim wkb
Dim sht
Dim WSD
WSD = inputbox("insérez le WSD")

     Set xls = CreateObject("Excel.Application" )
     Set wkb = xls.Workbooks.Add()
     Set sht = wkb.Sheets.Add()
     xls.DisplayAlerts = False
     sht.Cells(1, 1).Value = WSD
     sht.Cells(1, 2).Value = "ADS01"
     sht.Cells(1, 3).Value = "NOI"
     xls.Visible = True
     xls.ActiveWorkbook.SaveAs "d:\monfichier.csv"
     xls.DisplayAlerts = True
     xls.Quit
End Sub

Call test()

Le fichier est bien enregister en csv [Fichier de valeurs séparées par une virgule (CSV) Microsoft Office Excel]

jean-marc
3
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
21 mai 2008 à 09:20
Salut,

pourquoi tu dois lancer excel? tu peux pas enregistrer directement ton fichier en format csv?

Dim FSave           As FileSystemObject
Dim MonSave      As Object
Dim strNom         As String

    Set FSave = CreateObject("Scripting.FileSystemObject")
    Set MonSave = FSave.CreateTextFile("C:\Documents and Settings\All Users\Documents" & strNom & ".csv")

    MonSave.WriteLine "WSD;ADS01;NOI"

Voila...

slb
---------------------------------------------------------------
Il faut beaucoup donner pour recevoir un tout petit peu...
---------------------------------------------------------------
3
Aegwym212 Messages postés 5 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 14 août 2008
20 mai 2008 à 19:19
Bonjour, et merci pour vos réponses.

à Jack : J'ais éfféctivement fait la manip avant de poser ma question, mon problème était l'intégration de la réponse obtenu via la macro trouvée dans excel , j'obtenais de mémoire le SaveAs "c:\test\monfichier.csv",fileformat:= xlCSV. Mais lors de l'intégration dans mon script, il causait une erreur lors de la compilation au niveau des variables après le saveAs ( fileformat:= xlCSV).

à JMO : Malgrès tes modification, même si le script crée un fichier .csv , ce fichier est de type xls , il suffit de l'ouvrir avec le blocnote pour le voir. C'est sur quoi je tombais avec mon script.
             Je te remercie en tout cas pour la corréction de certaine partie de mon script.

Merci beaucoup à vous deux pour votre rapidité, je continue mes tests avec la macro excel.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Aegwym212 Messages postés 5 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 14 août 2008
21 mai 2008 à 18:30
Merci Lillith212, ton alternative à mon problème fonctionne très bien. Je vais continuer à chercher de mon coté pour excel par curiosité plutot que par besoin.
Je vous remercie tout les trois pour vos réponses rapide.

Bonne soirée
0
Rejoignez-nous