IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Création fichier csv


Sujet :

VBScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49
    Par défaut Création fichier csv
    Bonjour à tous,

    Je voudrait réaliser un script qui me transforme un fichier excel en fichier csv

    j'ai deja trouvé un code:

    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
     
     
    Const xlCSV = 6
    srccsvfile = "C:\Documents and Settings\x\Bureau\"
    srcxlsfile = "C:\Documents and Settings\x\Bureau\essai_facture.xls"
     
    Set objExcel = CreateObject("Excel.Application")
    Set objWorkbook = objExcel.Workbooks.Open(srcxlsfile)
    objExcel.DisplayAlerts = FALSE
    objExcel.Visible = TRUE
     
    Set objWorksheet = objWorkbook.Worksheets("essai_facture")
    objWorksheet.SaveAs srccsvfile &"essai-"&  Day(Now) &"-" & Month(Now)& "-" & Year(Now)  & ".csv", xlCSV
     
    objExcel.Quit
    Ce script me créé bien mon fichier csv mais avec des virgule et il me faudrait des point virgule.

    En macro dans excel il faut rajouter ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveWorkbook.SaveAs Filename:="J:x\Facture-factor" & Format(Date, "d\-mm\-yy") & ".csv", 
    FileFormat:=xlCSV, CreateBackup:=False, Local:=True
    J'ai essayer de rajouter ceci avec xlCSV mais cela ne change pas. Quel parametre me manque t-il ? Quel erreur est-je commis?

    Merci

    guigui69

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Essaye avec sa valeur (6) directement.
    Sinon regarde ici:
    http://msdn.microsoft.com/en-us/library/bb241279.aspx

    Mais je crois que le séparateur par défault sur excel est , pour le CSV.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49
    Par défaut
    Merci, mais il est deja à 6

    il n'y aurait pas un autre xlCSV qui est en point virgule ?

    Merci

    guigui69

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Qu'elle est ta version d'excel ...

    je crois qu'une nouvelle option est apparu avec Excel 2002

    essai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objWorksheet.SaveAs srccsvfile &"essai-"&  Day(Now) &"-" & Month(Now)& "-" & Year(Now)  & ".csv", xlCSV ,,,,,,,,,,true
    Attention au nombre de virgule ....

    Citation Envoyé par aide en ligne Excel
    expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)
    (...)
    Local Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).



  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49
    Par défaut
    Merci pour ton aide je suis sous office 2003 (SP3)

    Si j'ai essayé ta ligne mais il me retourne une erreur:

    http://www.monsterup.com/image.php?u...3499947631.jpg

    J'ai enlevé plusieurs virgule, et ça ne fait plus erreur mais toujours en" ,".


    Merci d'avance

    guigui69

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par guigui69 Voir le message
    ...
    J'ai enlevé plusieurs virgule,...
    il ne faut pas compte les virgule dans l'aide ne ligne, c'est le dernier paramètre qui doit être modifié !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49
    Par défaut
    ben justement, en

    recopiant ta ligne (j'ai compté le nombre de virgule) le compte y est.

    Mais si je le rajouter dans mon script il me retourne le message (l'image du précédent message).

    Guigui69

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    j'aurais dit plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objWorksheet.SaveAs srccsvfile &"essai-"&  Day(Now) &"-" & Month(Now)& "-" & Year(Now)  & ".csv", xlCSV ,,,,,,,true
    (nombre de , différente).

    D'après :
    http://msdn.microsoft.com/en-us/library/bb214156.aspx

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49
    Par défaut
    Merci pour ta réponse mais c'est toujours des virgules qui sépare.

    guigui69

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par guigui69 Voir le message
    Merci pour ta réponse mais c'est toujours des virgules qui sépare.

    guigui69
    et ta configuration windows c'est quoi (paramètres régionaux )

  11. #11
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Tu peux essayer :
    xlCSVWindows = 23

    Mais j'y crois moyen.

    Je pense plutôt que bbil pose la bonne question.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49

  13. #13
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    bouton personnaliser

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49

  15. #15
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    il y as bien le ; ....

    essai donc c'est peu-être un problème de nombre de paramètre ...

    dans excel, fenêtre exécution de l'éditeur VBA ( ALT-F11 puis CTRL G )

    essai de vérifier la syntaxe du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thisworkbook.SaveAs "Monfichier.csv", xlCSV ,,,,,,,true
    et vérifie grâce que true correspond bien au paramètre Local

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49
    Par défaut
    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
     
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro enregistrée le 07/04/2009
    '
     
    '
     
    Application.DisplayAlerts = False
     
    ActiveWorkbook.Worksheets("essai_facture").Select
     
    ThisWorkbook.SaveAs "C:\Documents and Settings\fguillot\Bureau\kkkkkk.csv", xlCSV, , , , , , , Local:=True
    ActiveWorkbook.Close
    End Sub
    Avec ceci, le fichier kkkkk.csv est bien composé de point virgule ";"

    j'ai copier coller dans mon script (script.vbs):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Const xlCSV = 6
    srccsvfile = "C:\Documents and Settings\fguillot\Bureau\"
    srcxlsfile = "C:\Documents and Settings\fguillot\Bureau\essai_facture.xls"
     
    Set objExcel = CreateObject("Excel.Application")
    Set objWorkbook = objExcel.Workbooks.Open(srcxlsfile)
    objExcel.DisplayAlerts = FALSE
    objExcel.Visible = TRUE
     
    Set objWorksheet = objWorkbook.Worksheets("essai_facture")
    objWorksheet.SaveAs srccsvfile &"essai-"&  Day(Now) &"-" & Month(Now)& "-" & Year(Now)  & ".csv", xlCSV, , , , , , , Local=True
    objExcel.Quit
    (j'ai enlever les : dans Local:=True, sinon il me retourne une erreur)

    Le fichier généré est composé de virgule ","


    Pourquoi ???

    guigui69

  17. #17
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tu ne peu pas utiliser des paramètres nommés en VBS enlève le local=1 ..., enlève le aussi dans tes tests sous Excel ... il faut mettre le true à la bonne place, sans utiliser les paramétres nommés..

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49
    Par défaut
    Merci pour ta réponse:

    voila ce la ligne dans une vba excel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ThisWorkbook.SaveAs "C:\Documents and Settings\fguillot\Bureau\kkkkkk.csv", xlCSV, , , , , , , , , , True
    Quand je rajoute ceci dans mon vbs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    objWorksheet.SaveAs srccsvfile &"essai-"&  Day(Now) &"-" & Month(Now)& "-" & Year(Now)  & ".csv", xlCSV, , , , , , , , , ,True
    il me retourne l'erreur:
    Nombre d'arguments ou affectation de propriété incorrects:'objWorksheet.SaveAs'

    Pourquoi?

    Merci

    guigui69

  19. #19
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    arf ... j'avais pas vu dans ton script tu n'applique pas la méthode saveAS à ton classeur mais tu l'applique à ta feuille...

    c'est pas le même nombre de paramètres...il faut 7 virgules entre xlCsv et true...

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49
    Par défaut
    Comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    objWorksheet.SaveAs srccsvfile &"essai-"&  Day(Now) &"-" & Month(Now)& "-" & Year(Now)  & ".csv", xlCSV, , , , , , , True
    Pas de code erreur, mais c'est toujours des virgules.

    Ou peut se situer le problème?

    guigui69

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. création fichier csv
    Par ammoun482 dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/05/2010, 10h00
  2. [VBA-E] Création Fichier csv (séparateur Virgule)
    Par dev_php51 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/07/2008, 11h39
  3. Problème création fichier CSV
    Par goboben dans le forum Documents
    Réponses: 1
    Dernier message: 04/03/2008, 17h31
  4. Choix du repertoire pour création fichier csv
    Par edenyorke dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 02/07/2007, 10h45
  5. Création fichier csv
    Par krfa1 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 07/11/2005, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo