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 :

[VBA-E] enregistrement csv


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 512
    Par défaut [VBA-E] enregistrement csv
    bonjour à tous

    J'aiun bout de code qui me permet de sauvegarder une page d'un fichier excel sous un format csv.

    Mais le fichier est bien enregistrer avec une extension csv parcontre le format du fichier est apparemment rester sous un format xls et non csv.

    Quelque chose doit manquer dans mon code.

    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim NomFichier As Variant
     
    NomFichier = Application.GetSaveAsFilename("aze.csv", fileFilter:="Fichier (*.csv), *.csv")
     
    If NomFichier <> False Then
            ActiveWorkbook.SaveAs NomFichier
    Si quelqu'un peut m'aider.

    Merci d'avance

  2. #2
    Membre émérite
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Par défaut
    tu es passé par l'enregistreur de macro?

    Sinon un csv ce n'est rien d'autre qu'un text... Alors avec un peu de code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Open filenamecsv For Output as #1
     
    Close

  3. #3
    Membre éprouvé Avatar de MGD_Software
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 137
    Par défaut
    SaveAs enregistre par défaut au format Excel. Il y a des paramètres à SaveAs, tu as appelé l'aide (il suffit de mettre le curseur sur SaveAs et d'appuyer sur F1 !)

    Le bon code est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename:=NomFichier, FileFormat:=xlCSV

  4. #4
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 512
    Par défaut
    Merci a vous deux mon code est devenu le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim NomFichier As Variant
     
    NomFichier = Application.GetSaveAsFilename("aze.csv", fileFilter:="Fichier (*.csv), *.csv")
     
    If NomFichier <> False Then
            ActiveWorkbook.SaveAs Filename:= _
            NomFichier, _
            FileFormat:=xlCSV
            ActiveWorkbook.Close
    Mais j'ai une autre question qui en decoule, comment je peux repondre oui a la question voulez vous remplacer le fichier existant et non a voulez vous enregistrer le fichier (quand il se ferme puisque je l'enregistre au format csv qu'il me demande si je veux l'enregistrer en xls avant de quitter)

    Si vous avez la reponse merci

  5. #5
    Membre éprouvé Avatar de MGD_Software
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 137
    Par défaut
    Il suffit d'utiliser la fonction DisplayAlert, qui valide ou inhibe tous les messages utilisateur.

    Le code devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs Filename:=NomFichier, FileFormat:=xlCSV
        Application.DisplayAlerts = True

  6. #6
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 512
    Par défaut
    merci mgd Sofware tout et tres claire et ça marche impec.

    Cependant j'ai une autre chose que je ne comprend pas c'est que mon fichier csv est sauvegardé avec comme séparateurs des virgules et non des points virgules comme c'est le cas des fichiers csv.

    Comment puis changer cela?

    Merci

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Vesta t'a donné la réponse, pas l'explication, donc, la voici : En Anglais, le point virgule n'existe pas même s'il est traduit (semicolon)
    Avec VBA 97 tout au moins, il n'est pas possible d'enregistrer un csv avec le point virgule comme séparateur par macro (alors que manuellement, c'est possible) On pallie ce problème en créant un fichier texte des données à sauvegarder avec l'extension csv.
    Ce sujet a déjà été traité plusieurs fois sur le forum. Une recherche te permettra sûrement de trouver ça.
    Je regarde de mon côté mais tu devrais jeter un oeil.

    A+
    Tiens, voici l'adresse
    http://www.developpez.net/forums/sho...&highlight=csv
    Lis bien jusqu'au bout

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

Discussions similaires

  1. [VBA-E]Enregistrement csv séparateur:";"
    Par Yolak dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/11/2020, 09h56
  2. [VBA-A]Création CSV
    Par Mad X dans le forum VBA Access
    Réponses: 11
    Dernier message: 17/03/2006, 17h40
  3. [VBA] aucun enregistrement dans un recordset
    Par gyzmo5 dans le forum Access
    Réponses: 2
    Dernier message: 07/02/2006, 11h33
  4. [VBA-E] Enregistrer sous un autre format
    Par Bashaq dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/10/2005, 23h33
  5. [VBA-E] enregistrer et fermer en un clic
    Par christouffes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/01/2005, 18h52

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