EXCEL, VBA : exporter des données Excel dans un fichier CSV

Il est courant d’exporter sous la forme d’un fichier texte des données produites ou mises en forme sur EXCEL en vue d’une intégration dans un logiciel tiers ; il en est ainsi, par exemple, d’écritures comptables.

Ces opérations d’exportation gagnent à être automatisées avec une macro VBA lorsqu’elles sont répétées.

L’exemple qui suit sélectionne une plage de cellules Excel, la copie en mémoire, la colle dans une feuille créée spécialement à cet effet puis la sauvegarde au format CSV (texte).

Ce code se décompose ainsi :

Sélection des données à exporter

Cette ligne de code sélectionne (Select) la plage de données (ici A10 à G15) à exporter (Range) de la première feuille (Sheets(1)) située dans le classeur des écritures.

Ecritures à exporter

Copie la sélection en mémoire (équivalent à la combinaison des touches <Contrôle> + <C>).

Exportation des données

Crée un nouveau classeur.

Colle les données dans la feuille active (première feuille du classeur nouvellement créé).

Rend le presse-papier disponible et vide.

Cette commande désactive les messages d’alerte lors de la fermeture d’un Excel. Ce qui s’avère utile pour éviter à l’utilisateur de répondre aux messages l’alertant sur le risque de perte de données liés au changement de format de fichier. La commande Application.DisplayAlerts = True rétablit les messages d’alerte.

Sauvegarde (SaveAs) le classeur actif (ActiveWorkbook) au format CSV (FileFormat:=xlCSV) sous le nom contenu dans la variable ‘s’. SaveAs est l’équivalent de Fichier / Enregistrer sous…

Enregistrer sous... fichier CSV

Enregistrer sous… fichier CSV

 

Ferme la fenêtre du classeur.

Le fichier contenant les données exportées (en l’occurrence des écritures comptables) est maintenant disponible tout prêt à être importé dans la comptabilité :

Ecritures exportées en CSV

Ecritures exportées en CSV

Tous les articles en rapport avec la conversion de fichier.

Approfondir le sujet : Programmer en VBA / Découvrir la série d’articles Maîtriser Excel

Share Button
The following two tabs change content below.
Benoît RIVIERE
Après seize années passées en cabinet d’expertise-comptable et de commissariat aux comptes (où j’ai exercé comme expert-comptable et chef de mission audit), j’ai pris le poste de directeur comptable d’un groupe de distribution automobile en novembre 2014. Au cours de ma carrière, j’ai acquis une expérience significative en audit et en exploitation des systèmes d’information (analyse de données, automatisation des tâches, programmation informatique) au service de la production des comptes annuels et consolidés. C’est cette expérience personnelle et ma passion pour l’informatique que je partage sur ce blog. Mon CV / Réalisations personnelles et projets informatiques / Ma collection / Me contacter
Benoît RIVIERE

Derniers articles parBenoît RIVIERE (voir tous)

5 commentaires

  1. Pingback: Format du fichier d’importation d’écritures comptables DCSnet – Audit & Systèmes d'Information

  2. bonsoir ,
    j’ai un petit problème j’ai pas trouver le code spécifique pour
    j’ai fait un interface en VBA excel qui importe des fichiers excel et l’exporter dans un seul fichier externe fermer .xls donc je veux terminer mon code de faire
    la lecture de ce fichier fermer .xls et l’afficher sur notre page actuel excel

    voila le code mais n’est pas complet

    Dim ligne_debut As Integer: Dim ligne_fin As Integer
    Dim clonne_debut As Integer: Dim colonne_fin As Integer
    Dim ligne_enCours As Integer: Dim colonne_enCours As Integer

    Private Sub fermer_Click()

    End Sub

    Private Sub exporter_Click()
    Dim nom_fichier As String
    ligne_debut = 1: colonne_debut = 1
    ligne_enCours = ligne_debut: colonne_enCours = colonne_debut
    For i = 0 To liste_fichiers.ListCount – 1

    lecture (liste_fichiers.List(i))
    Next i
    traitement
    nom_fichier = Application.GetSaveAsFilename(fileFilter:= »Text Files (*.xls), *.xls »)
    sortie.Value = nom_fichier

    lecture (nom_fichier)

    End Sub

    Private Sub importer_Click()
    Dim fichier_choisi As String
    fichier_choisi = Application.GetOpenFilename(« Text Files (*.xls), *.xls », , « selectionner un fichiers EXCEL »)
    If (LCase(fichier_choisi) « faux » And fichier_choisi « 0 ») Then
    liste_fichiers.AddItem (fichier_choisi)

    End If

    End Sub

    Private Sub ecriture()

    End Sub
    Private Sub lecture(fichier As String)

    End Sub

    Private Sub traitement()

    End Sub

    si vous pouvez m’aider , merci d’avance .

  3. Bonsoir,
    Quelle partie de votre code vous pose problème exactement ? Je vois bien qu’il n’est pas finalisé. Je peux vous aider à trouver une solution pour résoudre une difficulté précise mais je ne vais pas rédiger votre programme.
    Bien cordialement,
    Benoît RIVIERE

  4. Bonjour,
    En enregistrant en CSV (format xlCSV), des guillemets sont rajoutés autour des cellules. Votre exemple ne semble pas le mentionner…
    Comment faites vous pour supprimer les guillemets dnas l’enregistrement CSV?
    Je vous remercie.
    Louis

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *