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

Macros et VBA Excel Discussion :

conversion xls en csv


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 75
    Points
    75
    Par défaut conversion xls en csv
    Bonjour,

    je dois pour x raisons convertir un fichier xls en csv. Lorsque que je le fais manuellement le csv s'enregistre bien avec des points virgules lorsque je réponds oui au message "HAZDATA.csv peut contenir des informations non compatibles avec CSV. Voulez vous conserver le format du classeur ?".

    Par contre, lorsque j'essaie de le faire en vba par le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ActiveSheet.Copy
    ChDir "c:\"
    ActiveWorkbook.SaveAs Filename:= "c:\HAZDATA.csv", FileFormat:=xlCSV, _ CreateBackup:=False
    ActiveWorkbook.Close Savechanges = True
    le fichier ne garde pas le format csv.

    Je pense en fait que mon code ne suffit pas à lui préciser que je veux confirmer le format du classeur.

    Comment dois-je faire ?

    Merci beaucoup de votre aide (ça urge !!)

  2. #2
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Bonsoir

    Essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveWorkbook.SaveAs Filename:= "c:\HAZDATA", FileFormat:=xlCSV, _ CreateBackup:=False
    ActiveWorkbook.Close Savechanges = True
    Pas besoin d'indiquer l'extension

    Jean Pierre

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 664
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 664
    Points : 34 371
    Points
    34 371
    Par défaut
    salut,
    tu dois avoir le reste des paramètres avec le macro recorder. Outil>Macro>Nouvelle Macro

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Soir Bon
    Depuis XL 2002, l'export en CSV via VBA prend par défaut pour séparateur une "," sauf si on le fait à la main : Fichier Enregistrer sous CSV (séparateur point-virgule)

    Vérifier dans les Options Régionales | Personnaliser que le séparateur de listes est bien un point-virgule.
    Ajouter Local:=True

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveWorkbook.SaveAs Filename:= "c:\HAZDATA.csv", ....,Local:=True
    Extrait de l'aide en ligne VBA :
    True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). 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 régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 75
    Points
    75
    Par défaut
    Tout d'abord, merci d'avoir répondu si vite à mon appel au secours.

    J'ai bien cru que les options régionales et le rajout de local:= true allait fonctionner mais rien ni fait... voyez vous autre chose ?

    Encore merci

  6. #6
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    Tu as quelle version d'office???
    Avec la version 2000, cela a de forte chance de ne pas fonctionner.
    pour les versions 2002 ou plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveWorkbook.SaveAs Filename:= "C:TEST.csv", FileFormat:=xlCSV, _
    CreateBackup:=False, local:=True
    mais on l'as déjà dis plus bas ça

    pour ma part, je crée un fichier texte manuellement!
    via FileSystemeObject et la libraire scripting runtime

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 75
    Points
    75
    Par défaut
    j'ai la version 2003 et le code que tu m'as redonné ne fonctionne malheureusement pas, excel continue à me mettre des virgules au lieu des points virgules malgré que l'option régionale de séparateur de liste est correcte (.

    Je suis désespérée car je ne peux pas appliquer un texte manuellement par la méthode que tu me suggères, j'ai plus de 500 lignes à convertir.

    Y at-il pas un bonsens de code qui lui indique de conserver le format du fichier avant de le fermer ?!

    Encore merci pour votre aide

  8. #8
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    re, Vérifier également sous Excel Menu Outils Options International

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 75
    Points
    75
    Par défaut
    Toujours pas de modif même avec ce paramétrage...

  10. #10
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Re, Une copie de ce fichier rétif serait bienvenue

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 75
    Points
    75
    Par défaut
    bonjour kiki29,

    heureuse de voir que l'on ne m'abandonne pas.

    ci-joint le fichier rétif....

    Encore merci
    Fichiers attachés Fichiers attachés
    • Type de fichier : xls EDI.xls (72,0 Ko, 136 affichages)

  12. #12
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Soir Bon
    Application.DisplayAlerts pour écraser sans demande de confirmation,à toi de voir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub csvfile()
        Application.DisplayAlerts = False
        With ActiveWorkbook
            .SaveAs Filename:="C:\Test1.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True
            .Close
        End With
        Application.DisplayAlerts = True
    End Sub
    Une variante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub Tst3()
    Dim sNomCsv As String
        sNomCsv = ThisWorkbook.Path & "\Test3.csv"
        Application.DisplayAlerts = False
        ActiveSheet.Copy
        With ActiveWorkbook
            .SaveAs Filename:=sNomCsv, FileFormat:=xlCSV, local:=True
            .Close
        End With
        Application.DisplayAlerts = True
    End Sub

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 75
    Points
    75
    Par défaut
    bonjour kiki29,

    super ça marche !! mille fois merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 2.X] Module xlrd : Conversion xls en csv
    Par aurelie.guegan.15 dans le forum Général Python
    Réponses: 5
    Dernier message: 11/09/2014, 18h53
  2. Encodage conversion xls en csv
    Par Daasar dans le forum Général Python
    Réponses: 0
    Dernier message: 11/02/2014, 18h39
  3. [PHP 5.2] Conversion xls en csv ou txt
    Par Delors dans le forum Langage
    Réponses: 1
    Dernier message: 13/07/2009, 12h52
  4. Conversion XLS CSV : probleme virgule
    Par B&B dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/05/2008, 17h55
  5. Conversion xls / csv
    Par ktsys dans le forum C++
    Réponses: 3
    Dernier message: 18/04/2007, 16h27

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