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

Excel Discussion :

VBA convertir CSV en TXT [XL-2013]


Sujet :

Excel

  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2020
    Messages : 12
    Par défaut VBA convertir CSV en TXT
    Bonjour le forum,

    Je cherche en VBA à convertir et renommer un fichier source toto.CSV en tata.TXT.

    Ayant fait plusieurs recherche c'est en vain que je poste ici

    Si vous avez des pistes je suis preneur

    Merci.

    Désolé, je me suis rendu compte, trop tard, que j'étais resté sur le forum Excel alors que je pensais poster sur Macro et VBA Excel !
    Je ne sais pas comment déplacer mon poste ?
    Merci au modérateur qui le fera

  2. #2
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Bonjour,

    Citation Envoyé par Patasimov Voir le message
    Je cherche en VBA à convertir et renommer un fichier source toto.CSV en tata.TXT.
    Voici la ligne de code à insérer pour renommer votre fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Name "D:\DATA\alex\Desktop\toto.csv" As "D:\DATA\alex\Desktop\tata.txt"
    A vous d'adapter le chemin d'accès au fichier.

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2020
    Messages : 12
    Par défaut
    Bonjour,Alex020181
    Voici la ligne de code à insérer pour renommer votre fichier
    Je me suis peut être mal exprimé
    Je cherche à convertir de CSV en TXT, pour le renommage je pense plutôt créer un nouveau fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewFichierTxt "C:\Users\Patrick\Desktop\Test.txt", txt
    Mais merci pour l'info

  4. #4
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Un fichier csv est lui-même un fichier texte. Il suffit de l'ouvrir avec un éditeur de texte (exemple bloc note Windows) et pas avec Excel. Il n'y a pas de conversion à faire.

    Par contre il se peut que, individuellement de cette conversion, vous souhaitiez faire des modifications de formats (de données et pas de fichier).

    Pourriez-vous nous donner un exemple de votre fichier csv d'origine et du txt correspondant attendu ?

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Bonjour,

    Citation Envoyé par Patasimov Voir le message
    Je cherche à convertir de CSV en TXT, ...
    Si tu veux convertit un fichier .csv qui représente un tableau de valeurs en fichier .txt qui représente ce même tableau, c'est pas vraiment simple !!!

    Soit tu passes par Excel pour charger les valeurs dans une feuille puis tu enregistres au format .txt
    Soit tu fais tout avec VBA (chargement dans une variable VBA, Traitement, enregistrement).

    Dans les 2 cas la difficulté est le traitement du fichier csv.
    Il faut connaitre le format du csv, à minima :
    - le séparateur de texte
    - le séparateur de valeurs
    - l'identificateur de texte
    et souvent en plus :
    - l'encodage des caractères
    - le séparateur décimal
    - le séparateur de milliers
    - le format des nombres négatifs
    - le format des colonnes date / temps

    Ici un exemple pour ouvrir avec Excel un csv : [XL-2016] Problème à l'importation d'un fichier CSV via Workbooks.OpenText - Macros et VBA Excel

  6. #6
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2020
    Messages : 12
    Par défaut
    C'est vrai que les fichiers exemples seront là pour bien comprendre des données.
    En fait je récupère des fichiers de valeurs numériques en real d'un automatisme, que je dois insérer dans les feuilles d'un classeur Excel pour afficher des courbes et calculs sur ces valeurs.
    Classeur protégé existant que je souhaite pas casser.

    Voici un exemple de fichier source csv et le fichier txt que je dois insérer.
    CSV_TXT.7z

  7. #7
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Bonjour,

    Avec une procédure spécialisée (d'après les deux fichiers fournis .txt et .csv) qui fonctionne avec les 2 types de fichier :
    Code VBA : 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
    26
    27
    28
    29
    30
    31
    32
    Private Sub ChargerLesDonnees(nomCompletFichierSource As String, celCible As Range)
    Dim buf As String                 'buffer
    Dim n°F As Integer                'numéro du fichier
    Dim tbL As Variant                'tableau de lignes
    Dim tbV As Variant                'tableau de valeurs
    Dim tbR As Variant                'tableau résultat
    Dim nbC As Long                   'nombre de colonnes
    Dim ixL As Long                   'index ligne
    Dim ixC As Long                   'index colonne
      ' Chargement des données contenues dans le fichier source
      n°F = FreeFile
      Open nomCompletFichierSource For Binary Access Read As #n°F
      buf = Space$(LOF(n°F))
      Get #n°F, , buf
      Close #n°F
      ' Traitement des données
      If Mid(buf, Len(buf) - 1) = vbCrLf Then buf = Left(buf, Len(buf) - 2)
      If Right(nomCompletFichierSource, 4) = ".csv" Then buf = Replace(Replace(buf, """", ""), ";", " ")
      buf = Replace(buf, ",", ".")
      tbL = Split(buf, vbCrLf)
      ' Création du résultat
      nbC = UBound(Split(tbL(0), " "))
      ReDim tbR(1 To UBound(tbL) + 1, 1 To nbC + 1)
      For ixL = 0 To UBound(tbL)
        tbV = Split(tbL(ixL), " ")
        For ixC = 0 To nbC
          tbR(ixL + 1, ixC + 1) = tbV(ixC)
        Next ixC
      Next ixL
      ' Écriture dans le fichier cible
      celCible.Resize(UBound(tbR), UBound(tbR, 2)).Value = tbR
    End Sub

    Un exemple d'utilisation de la procédure ci-dessus :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Exemple()
    Dim wbk As Workbook               'classeur cible
    Dim cel As Range                  'cellule cible
    Dim nom As Variant                'nom complet du fichirer csv ou txt
      ' Définir le nom du fichier csv ou text à charger
      nom = Application.GetOpenFilename(, , , , False)
      If nom = False Then Exit Sub
      ' Définir le classeur cible et la cellule cible
      Set wbk = Application.Workbooks.Add(xlWBATWorksheet)
      Set cel = wbk.Worksheets(1).Range("B12")
      ' Charger les données
      Call ChargerLesDonnees(CStr(nom), cel)
    End Sub

  8. #8
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2020
    Messages : 12
    Par défaut
    Merci Patrice740
    J'ai placé le poste en résolu suite à tes deux messages qui n'ont bien aidé dans mon projet.

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

Discussions similaires

  1. VBA convertir csv en xls - Perte de 0
    Par marion05 dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 12/12/2017, 13h41
  2. VBA convertir un PDF en Word, Excel, Image [Tiff jepg, bnp etc.], CSV etc
    Par GuiJenn34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/03/2017, 14h34
  3. Comment convertir un fichier Excel en fichier csv ou txt ?
    Par djibril dans le forum Téléchargez
    Réponses: 0
    Dernier message: 31/05/2011, 19h04
  4. Convertir un fichier .txt en csv sans ouvrir excel
    Par cecilebzh dans le forum Excel
    Réponses: 3
    Dernier message: 22/07/2010, 18h01
  5. [VBA-E] .XLS vers .TXT (enregistrement fixe)
    Par turbo74 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 17/03/2006, 15h45

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