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 :

Convertir .xlsm vers .csv en vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut Convertir .xlsm vers .csv en vba
    Bonsoir,

    Comme dit dans le titre, j'aimerais pouvoir convertir directement un fichier .xlsm vers un fichier .csv
    Ce que j'ai fait, c'est que j'ai crée deux fichiers séparés A.xlsm et un fichier B.csv
    Ensuite à partir d'un bouton je copie colle du fichier A vers le fichier B.
    Cela marche bien avec le code que j'ai écrit mais cependant dans le fichier .csv plus tard, tout est en désordre avec des virgules partout et mes données ne respectent plus leur colonnes d'affectation initiale.

    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
     
    Private Sub CommandButton2_Click()
    Dim DL As Long
     
    DL = Feuil11.Range("A" & Rows.Count).End(xlUp).Row 'dernière de la feuille de départ
     
    Dim src As Workbook
    Set src = Workbooks.Open("G:\Test\Classeur1.csv")
    ThisWorkbook.Activate
    For I = 2 To DL
    src.Worksheets("Classeur1").Range("A" & I & ":K" & I).Formula = Worksheets("Feuil11").Range("A" & I & ":K" & I).Formula
    Next I
    src.Save
    src.Close
     
    End Sub
    Je me demande donc d'où peut venir le problème.

    PS : J'ai essayé le copier coller vers un fichier .xlsx et ça marche nickel sans aucun autre soucis.
    La conversion manuelle de .xlsm vers .csv marche aussi nickel sans aucun soucis de colonne ou de virgule
    Le truc c'était donc d'automatiser cette action manuelle

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Le problème vient du fait que les anglosaxons et les français n'ont pas les même séparateurs.
    Les français utilisent la "," comme séparateur décimal alors que les anglosaxons utilisent le ".".
    Du coup, pour un CSV qui, par définition, utilise la virgule comme séparateur, les français doivent utiliser autre chose et ont choisi le ";".

    Comme ton Excel est francophone et VBA reste indécrottablement anglophone, ils ont des difficultés à dialoguer parfois.

    Pour l'ouverture, essaye de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set src = Workbooks.Open "G:\Test\Classeur1.csv", Local:=True

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Bonjour,
    Comme dit dans le titre, j'aimerais pouvoir convertir directement un fichier .xlsm vers un fichier .csv
    Pourquoi ne pas faire "enregistrer sous" -> .csv ,méthode SaveAs en VBA ?
    Ca me parait plus simple et rapide que la copie des données, non ?

Discussions similaires

  1. [AC-2010] Importation Fichier.csv MS Excel vers Access en vba
    Par Dixies dans le forum IHM
    Réponses: 12
    Dernier message: 24/09/2014, 00h42
  2. [XL-2007] exporter depuis .xlsm vers .csv sans convertir "001" en 1
    Par EmmanuelleC dans le forum Excel
    Réponses: 4
    Dernier message: 12/04/2010, 09h13
  3. convertir un document CSV (text) vers un fichier excel
    Par lila23 dans le forum Débuter
    Réponses: 7
    Dernier message: 01/04/2009, 12h20
  4. [VBA-E] macro conversion excel vers csv
    Par abdelhamidem dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/10/2008, 16h48
  5. [VBA-E] macro conversion excel vers csv
    Par baboune dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/07/2004, 09h23

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