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 plusieurs fichiers excel en csv avec des guillemets [XL-2010]


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
    Avril 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 18
    Par défaut Convertir plusieurs fichiers excel en csv avec des guillemets
    bonjour;

    j'ai un problème pour automatiser une macro pour convertir plusieurs fichiers excel 2010 en csv avec des guillemets et chaque fichier possède un voir 2 onglets le tout c'est 126 fichiers repartis dans 21 dossier suivants des projets.

    la macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Export()
        Dim Enrgt As String
        Close #1
        Open "C:\Users\Desktop\test.csv" For Output As #1
        For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
            Enrgt = ""
            For Each x In Range(Cells(c.Row, 1), Cells(c.Row, Columns.Count).End(xlToLeft))
                Enrgt = Enrgt & """;""" & x.Value
            Next x
            Enrgt = Right(Enrgt, Len(Enrgt) - 2) & """"
            Print #1, Enrgt
        Next c
        Close #1
    End Sub
    En plus de ça j'ai certaines cellules en forme 001 et la macro les converties a 1

    merci

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Mets en PJ un échantillon de fichier (sans données confidentielles). Si les fichiers sont répartis dossiers, comment reconnait-on les fichiers à convertir ? ou est-ce l'utilisateur qui choisit ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 18
    Par défaut nouvelles macro
    Bonjour,

    j'ai réussi a trouver une autre macro sur le net qui ne convertie pas les cellules (001 en 1) sauf que cette macro elle ne met pas les champs entre guillemets

    voila la macro
    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
     
    Sub Placeoweb_XLS2CSV_OneFileBySheet()
     
       Application.DisplayAlerts = False
       Application.ScreenUpdating = False
       For Each feuilleEnCours In ThisWorkbook.Sheets
           feuilleEnCours.Select
           feuilleEnCours.Copy
           ActiveWorkbook.SaveAs Filename:="C:\placeoweb.com.xls2csv." & feuilleEnCours.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True
           ActiveWorkbook.Close SaveChanges:=False
       Next
       Application.ScreenUpdating = True
       Application.DisplayAlerts = True
     
       MsgBox ("Exportation terminée, retouvez vos fichier à la racine dans le C:\")
     
    End Sub
    merci
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Je répète :

    Si les fichiers sont répartis dossiers, comment reconnait-on les fichiers à convertir ? ou est-ce l'utilisateur qui choisit ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 18
    Par défaut
    En fait tout les dossiers contiennent plusieurs fichiers xlsx donc pour la conversion c'est tous les fichiers (L'utilisateur ne choisit pas)

    La nouvelle macro m’arrange bien sauf qu'il lui manque juste l'ajout des guillemets

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    la nouvelles macro que elle m’arrange bien sauf que il lui manque juste pour rajouter les guillemets
    Oui mais il n'y a pas moyen de l'adapter.

  7. #7
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Citation Envoyé par karido-74 Voir le message

    en plus de ça j'ai certain cellules en forme 001 et la macro les converti a 1
    merci
    Bonjour

    Mets ' devant les valeurs qui débutent par 0 afin de conserver le 0.

    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
    Sub Export_Valeurs_Debutant_Par_Zero()
    Dim Enrgt As String
    Close #1
    Open "C:\test2\test.csv" For Output As #1
     
    For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
    Enrgt = ""
     
    For Each x In Range(Cells(c.Row, 1), Cells(c.Row, Columns.Count).End(xlToLeft))
     If Enrgt <> "" Then Enrgt = Enrgt & ";"
    If Mid(CStr(x.Value), 1, 1) = "0" And IsNumeric(CStr(x.Value) & "0") Then
     Enrgt = Enrgt & Chr(34) & "'" & x.Value & Chr(34)
    Else
     Enrgt = Enrgt & Chr(34) & x.Value & Chr(34)
    End If
    Next x
    Print #1, Enrgt
     
    Next c
    Close #1
    End Sub
    Cordialement

    Docmarti

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

Discussions similaires

  1. Un flux avec plusieurs fichier Excel dépendant d'une des variables du flux
    Par dev_ggy dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 24/01/2012, 17h16
  2. [MySQL] Convertir un fichier excel en csv avant d'uploader
    Par kakashi05 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 29/08/2011, 14h50
  3. Réponses: 2
    Dernier message: 01/06/2011, 12h14
  4. [CSV] importation CSV avec des guillemets
    Par trash_board dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2006, 14h08

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