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 :

excel vers fichiers text


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 31
    Points : 39
    Points
    39
    Par défaut excel vers fichiers text
    Bonjour tout le monde

    Voilà, j'ai un fichier excel, que j'aimerai découper et exporter vers plusieurs fichiers .txt, selon les valeurs d'une colonne.
    J'ai chercher à le faire mais ne connaissant pas bien, excel je me tourne vers vous.

    Le fait est que j'ai beaucoup de données alors j'aimerai automatiser la tache.

    Merci à tous.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    Essaye d'enregistrer ton fichier en .csv , puis tu l'ouvre avec un éditeur de texte (style bloc notes) et là tu aura ton fichier avec tous les champs au format texte, chaque champ séparé par des point-virgules.

    Ensuite, avec un outil du style notepad++, tu remplace ; par un blanc et tu obtiens la liste que tu recherche. Tu n'as plus qu'à enregistrer ton fichier en .txt

    Voilà, j'espère que c'est ce que tu recherchai

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 31
    Points : 39
    Points
    39
    Par défaut
    En fait je veux séparer les données entre deux lignes à préciser.
    En entrant deux couples (num_ligne, nom_col) ;
    en sachant que ses deux couples (num_ligne, nom_col) sont uniques.
    qu'ils cherchera, et enregistrera toutes les données de tous les champs entre les deux couples trouvé, sous forme .txt.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    Uhm, un script php pourrai faire l'affaire, mais je ne sais pas si tu maitrise.
    Je pense que l'idée du .csv est à creuser, mais si il s'agit d'une recherche à travers plusieurs colonnes en même temps, ça peut vite devenir complexe, et je ne suis pas expert en Excel... Mais j'avais travaillé pas mal avec les csv, et il y a vraiment plein de possiblités.

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    voici un exemple qui filtre les données de la plage de cellules A1:C12 contenues dans la Feuil1,
    si la colonne dont l'en-tête est nommé 'champ1' contient la donnée 'Ville 02'.
    Le résultat de la requête est exporté dans un fichier txt.

    ThisWorkbook.FullName indique que la recherche est effectuée dans le classeur contenant cette 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Sub Test()
        ExtractionDonnees_VersTXT _
            ThisWorkbook.FullName, _
            "Feuil1", _
            "A1:C12", _
            "Champ1", _
            "Ville 02", _
            "C:\essai.txt"
    End Sub
     
     
    Sub ExtractionDonnees_VersTXT(WbSource As String, WsSource As String, PlageSource As String, _
        ChampFiltre As String, ValeurChamp As String, Chemin_et_NomFichierTXT)
     
        Dim objCn As Object, Rst As Object
        Dim x As String
        Dim i As Long
     
        WsSource = WsSource & "$"
     
        'Connection à la source de données
        Set objCn = CreateObject("ADODB.Connection")
        objCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & WbSource & _
            ";Extended Properties=""Excel 8.0;HDR=YES;"";"
     
        'Création recordset/requete dans la base de données
        Set Rst = objCn.Execute("SELECT * FROM [" & WsSource & PlageSource & "] WHERE " & _
                ChampFiltre & "='" & ValeurChamp & "'")
     
        'Si le la requete fournit un résultat :
        If Not Rst.EOF Then
            '--- récupération de la première ligne (en-têtes)
            For i = 0 To Rst.Fields.Count - 1
                x = x & Rst.Fields(i).Name & ";"
            Next i
            '---
     
            'Création du fichier txt.
            'Si le fichier existe, les anciennes données seront écrasées.
            'Si le fichier n'existe pas , il sera créé automatiquement.
            Open Chemin_et_NomFichierTXT For Output As #1
                'Ecriture de l'entête dans le fichier .txt
                Print #1, Left(x, Len(x) - 1) & vbCrLf;
                'Ecriture de la requête dans le fichier .txt
                    '   2 (adClipString) indique le format de la requête (choix unique).
                    '   -1 indique qu'il faut récupérer tous les enregistrements.
                    '   ";" spécifie le délimiteur de colonnes.
                    '   vbCrLf spécifie le délimiteur d'enregistrements.
                    '   "" indique comment doivent être représentées les valeurs nulles.
                Print #1, Rst.GetString(2, -1, ";", vbCrLf, "")
            Close #1
        End If
     
        Rst.Close
        objCn.Close
        Set Rst = Nothing
        Set objCn = Nothing
    End Sub

    bon week end
    michel

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Je pense que pour pouvoir vous répondre plus précisément vous devriez joindre une exemple de votre fichier Excel et de ce que vous voulez obtenir dans le fichier .txt

Discussions similaires

  1. [VBA-E] Export de Excel vers fichier texte
    Par lipaika dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/01/2007, 09h57
  2. Export Table Acces vers fichier Texte
    Par ston dans le forum Access
    Réponses: 2
    Dernier message: 04/04/2006, 17h21
  3. SQL vers Fichier Texte
    Par annedjomo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/11/2005, 11h47
  4. Export vers fichier text
    Par Aurèl90 dans le forum Access
    Réponses: 10
    Dernier message: 26/10/2005, 10h26
  5. [VBA-Excel,VB6,Fichier texte]enregistrer un classeur excel..
    Par Tarul dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2005, 13h09

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