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

VB.NET Discussion :

Enregistrer une feuille en .csv en conservant le séparateur ";"


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Enregistrer une feuille en .csv en conservant le séparateur ";"
    Bonjour,

    Ce sujet a été abordé, mais dans ma recherche je n'ai pas trouvé la solution.

    A partir d'un fichier .xlsm (sous Mac) j'ai une feuille que je veux isoler sans un nouveau fichier .csv. avec comme séparateur ";" OBLIGATOIREMENT.
    Ce fichier servira à un import dans une web apps.

    Le problème que je rencontre, c'est que le fichier .csv s'enregistre avec comme séparateur ",".
    Je ne peux pas modifier les paramètres de mon poste, car cette option sera réalisée sur plusieurs machines sans que j'en ai connaissance.
    Je vous joins mon code.

    Merci de votre assistance.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Sub Import()
    '
    ' Import_restaurant Macro
    ' Création d'un fichier csv pour import Appli
    '
        Sheets("IMPORT_HEURES").Select
        Sheets("IMPORT_HEURES").Copy
        Range("A1").Select
     
        'Mise en forme de la colonne de date au format "dd-mm-yyyy"
        Columns("A:A").Select
        Selection.NumberFormat = "dd-mm-yyyy"
        Range("A2").Select
     
        'Chemin d'enregristrement du nouveau fichier au format csv
        ActiveWorkbook.SaveAs Filename:= _
            "Macintosh HD:Users:moi:Desktop:import_restaurant.csv", FileFormat:= _
            xlCSVWindows, CreateBackup:=False
     
       'Fermeture et enregistrement du classeur
            ActiveWorkbook.SaveAs
            ActiveWorkbook.Close savechanges:=True
     
    End Sub

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Le sujet a déjà été traité ici : http://www.developpez.net/forums/d15...v-separateurs/

    Utilise la fonction recherche du forum avant de poster, le lien ci-dessus date d'il y a quelques jours à peine... N'oublie pas de marquer cette discussion comme résolue en utilisant le bouton "Résolu" en bas de cette page.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Dans ce poste je n'ai pas trouvé la réponse à ma question. ( http://www.developpez.net/forums/d15...v-separateurs)
    Ces solutions ne fonctionne pas pour moi.
    Le fichier est enregistré en csv, mais les données sont séparées par une ",".

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Je te donne un indice, la réponse se trouve dans l'avant dernier post. Toi tu utilises xlCSVWindows qui correspond au format CSV avec la virgule comme séparateur.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    Je te donne un indice, la réponse se trouve dans l'avant dernier post. Toi tu utilises xlCSVWindows qui correspond au format CSV avec la virgule comme séparateur.
    J'ai modifié mon code avec XlFileFormat.xlCSV comme ci-dessous, mais pas de changement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveWorkbook.SaveAs Filename:= _
            "Macintosh HD:Users:moi:Desktop:import_restaurant.csv", FileFormat:= _
            XlFileFormat.xlCSV, CreateBackup:=False

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Hmm bizarre, peut-être que si tu as déjà un fichier existant, il n'est pas remplacé par le nouveau ?

    Essaie avec ceci :
    Code VB.NET : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub Import()
    	'
    	' Import_restaurant Macro
    	' Création d'un fichier csv pour import Appli
    	'
        Sheets("IMPORT_HEURES").Select
        Sheets("IMPORT_HEURES").Copy
        Range("A1").Select
     
        'Mise en forme de la colonne de date au format "dd-mm-yyyy"
        Columns("A:A").Select
        Selection.NumberFormat = "dd-mm-yyyy"
        Range("A2").Select
     
    	Application.DisplayAlerts = False
     
    	'Chemin d'enregristrement du nouveau fichier au format csv
    	ActiveWorkbook.SaveAs Filename:= _
    		"Macintosh HD:Users:moi:Desktop:import_restaurant.csv", FileFormat:= _
    		XlFileFormat.xlCSV, CreateBackup:=False
     
    	'Fermeture et enregistrement du classeur
    	ActiveWorkbook.Close
     
    End Sub
    Ca donne quoi ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    Hmm bizarre, peut-être que si tu as déjà un fichier existant, il n'est pas remplacé par le nouveau ?

    Essaie avec ceci :
    Code VB.NET : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub Import()
    	'
    	' Import_restaurant Macro
    	' Création d'un fichier csv pour import Appli
    	'
        Sheets("IMPORT_HEURES").Select
        Sheets("IMPORT_HEURES").Copy
        Range("A1").Select
     
        'Mise en forme de la colonne de date au format "dd-mm-yyyy"
        Columns("A:A").Select
        Selection.NumberFormat = "dd-mm-yyyy"
        Range("A2").Select
     
    	Application.DisplayAlerts = False
     
    	'Chemin d'enregristrement du nouveau fichier au format csv
    	ActiveWorkbook.SaveAs Filename:= _
    		"Macintosh HD:Users:moi:Desktop:import_restaurant.csv", FileFormat:= _
    		XlFileFormat.xlCSV, CreateBackup:=False
     
    	'Fermeture et enregistrement du classeur
    	ActiveWorkbook.Close
     
    End Sub
    Ca donne quoi ?
    Pas de changement.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    Hmm bizarre, peut-être que si tu as déjà un fichier existant, il n'est pas remplacé par le nouveau ?
    Je place la nouveau fichier sur le bureau et je m'assure de n'avoir aucun fichier avant d'exécuter la macro. Donc normalement il n'y a pas de remplacement.

  9. #9
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    essaie de mettre le paramètre Local à true dans l'appel à SaveAs,
    et le paramètre SaveChanges à false dans l'appel à Close.

    J'aimerai bien t'expliquer pourquoi il faut faire comme ça mais j'ai pas vraiment creusé la question (même si j'ai une petite idée).
    Je te laisse donc faire cette recherche et revenir nous instruire par la suite
    Plus je connais de langages, plus j'aime le C.

  10. #10

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Salut,

    essaie de mettre le paramètre Local à true dans l'appel à SaveAs,
    et le paramètre SaveChanges à false dans l'appel à Close.

    J'aimerai bien t'expliquer pourquoi il faut faire comme ça mais j'ai pas vraiment creusé la question (même si j'ai une petite idée).
    Je te laisse donc faire cette recherche et revenir nous instruire par la suite
    Bonjour,

    Bizarrement sur Mac le paramètre Local n'est pas reconnu.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Toute la ligne "Dim Wb As Microsoft.Office.Interop.Excel.Workbook = Xls.Workbooks.Add" est en rouge.

  13. #13
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Citation Envoyé par Reply Voir le message
    Bonjour,

    Bizarrement sur Mac le paramètre Local n'est pas reconnu.
    Arf. Perso j'ai fait mes tests en C# (WIN32) et ce paramètre est le dernier de la fonction SaveAs.
    Il n'empêche que c'est quand même dommage/bizarre qu'on ne puisse pas choisir son séparateur.
    Plus je connais de langages, plus j'aime le C.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Reply Voir le message
    Toute la ligne "Dim Wb As Microsoft.Office.Interop.Excel.Workbook = Xls.Workbooks.Add" est en rouge.
    là je n'est pas la réponse car j'ai fait de test avant de posté, mais il est vrai que je ne suis pas sur Mac!

  15. #15
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Une partie de la réponse se trouve dans l'aide de VBA Excel :

    1) L'énumération XlFileFormat est "née" avec Excel 2007. Pour MAC, je ne sais pas c'est quelle version; mais si c'est un vieux Excel, il faut probablement regarder ailleurs.

    2) Il y a 4 constantes pour le format CSV :

    xlCSV 6 CSV
    xlCSVMac 22 Macintosh CSV
    xlCSVMSDOS 24 MSDOS CSV
    xlCSVWindows 23 Windows CSV

    et même six autres qui pourrait peut-être se trouver d'un certain intérêt:

    xlCurrentPlatformText -4158 Texte de la plate-forme actuelle
    xlTextMac 19 Texte Macintosh
    xlTextMSDOS 21 Texte MSDOS
    xlTextPrinter 36 Texte imprimante
    xlTextWindows 20 Texte Windows
    xlUnicodeText 42 Texte Unicode

    Mais bon, tout le monde sait que c'est interdit de regarder dans l'aide ou même sur MSDN

    Ou, toujours sur MSDN
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. inclure une feuille en CSV
    Par Bruce Campbell dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/10/2008, 12h33
  2. enregistrer une feuille excel en document pdf
    Par tunizar dans le forum WinDev
    Réponses: 1
    Dernier message: 14/03/2008, 14h12
  3. Enregistrer une feuille Excel sur un autre classeur
    Par Manou34 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/01/2008, 16h41
  4. [VBA-E][2k7] Enregistrer une feuille d'un classeur dans un autre document
    Par tazamorte dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/04/2007, 18h15
  5. [VBA Excel] export/sauvegarde d'une feuille excel .csv
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/12/2006, 12h07

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