Macro fichier texte

Résolu
seb13 -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour
Je voudrais savoir si quelqu'un peut me donner un coup de main pour faire une macro qui transforme ma page excel en un fichier texte dont les collones sont séparées par des espace et que ce fichier soit du meme type qu'un word pad.
Et je voudrais savoir si la manip inverse( un fichier texte en excel est posssible?)
merci

19 réponses

  1. seb13
     
    Je suis désolé d'etre un peu lourd mais je me sert rarement de macro et je sait pas comment utiliser cette macro ni si il y a quelque chose à modifier
    1
  2. seb&"
     
    C'est cool tompols
    ça marche et aprés je fait remplacer , par point.
    Une dernière question: est il possible lancé avec un bouton la macro au lieu faire F8
    merci
    1
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    essaie d'enregistrer avec excel sous format .txt, cela devrait aller

    un fichier texte en excel c'est possible aussi
    et l'assistant d'importation te permet de paramètrer
    si cela ne convient pas , le menu données / convertir
    permet de dissocier des colonnes.

    0
  4. Seb13
     
    Moi ce que je voudrais c'est créer un bouton, cliquer dessus et que cele me créé automatiquement un fichier texte ou les collones sont séparées par des espaces et les virgules des nombres transformés en point
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    Salut,

    Voilà une macro qui fait ce que tu demandes (séparateur colonnes : espace / séparateur décimal ".")
    A coller ds un module :

    Sub SaveAsTXT()
    
        With Application
            .DecimalSeparator = "."
            .ThousandsSeparator = " "
            .UseSystemSeparators = False
        End With
    
    
     Dim Range As Object, Line As Object, Cell As Object
     Dim StrTemp As String
     Dim Nomfichier As String
     Dim chemin As String
    
     Dim Separateur As String
     Nomfichier = InputBox("Veuillez entrer le nom de fichier pour la sauvegarde en .txt", "Nom fichier ?")
     chemin = ThisWorkbook.Path & "\"
         Separateur = " "
         Set Range = ActiveSheet.UsedRange
    
    Open chemin & Nomfichier & ".txt" For Output As #1
     For Each Line In Range.Rows
      StrTemp = ""
             For Each Cell In Line.Cells
                 StrTemp = StrTemp & CStr _
                     (Cell.Text) & Separateur
             Next
            Print #1, StrTemp '= " "
        Next
    Close
        With Application
            .DecimalSeparator = ","
            .ThousandsSeparator = " "
            .UseSystemSeparators = True
        End With
    
    
    End Sub
    


    A+
    0
  7. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    Re,

    OK, dans ton classeur tu fais Alt + F11 => ça ouvre VBE.
    Sur la gauche ds l'explorateur de projet, ton fichier apparait comme ceci ; "VBA Project (ton fichier) => click droit dessus puis insertion/module.
    Tu vois apparaitre "module 1" => double clique et colle ds la fenetre qui apparait le code....
    Ferme ensuite l'éditeur VB puis dans ton fichier Alt + F8, sélectionne la macro SaveAsTXT puis executer....
    Et voilà....

    A+
    0
  8. seb13
     
    Lorsque je fais alt F8 il me marque erreur exécutio 438 propriété ou méthode non généré par cet objet et si je fait débogage il va sur décimalséparator.
    0
  9. seb13
     
    J'ai oublié de précisé un détail qui a paut etre de l'imporatance: dans mes collones et lignes j'ai parfois des mots et parfois des chiffres
    0
  10. seb13
     
    Bonjour à tous
    Le week end à rien changé à mon problème j'ai toujours cette erreur dans la macro que tompols m'a donné et j'aurais vraiment besoin qu'elle marche donc si quelqu'un peut m'aider se serai cool.
    merci
    0
  11. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    j'ai le même problème que toi avec cette macro.

    je te propose simplement ceci qui fonctionne chez moi :

    Sub sav_texte()
    ActiveWorkbook.SaveAs Filename:="C:\...\Classeur.txt", _
    FileFormat:=xlText, CreateBackup:=False
    End Sub


    0
  12. seb13
     
    Merci pour ta réponse gbinforme
    Mais je n'arrive pas a utiliser correctement ta fonction et je voudrais savoir comment l'adapter à mon fichier.
    0
  13. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    Salut,

    Désolé, j'étais pas dispo ce WE....
    En supprimant cette histoire de virgule (mais tu devras faire un rechercher/remplacer ds ton fichier txt pour remplacer les points par des virgules; ceci dit ça garde le plus galère : l'espace pour séparer les colonnes)
    Sub SaveAsTXT()
      
    
     Dim Range As Object, Line As Object, Cell As Object
     Dim StrTemp As String
     Dim Nomfichier As String
     Dim chemin As String
    
     Dim Separateur As String
     Nomfichier = InputBox("Veuillez entrer le nom de fichier pour la sauvegarde en .txt", "Nom fichier ?")
     chemin = ThisWorkbook.Path & "\"
         Separateur = " "
         Set Range = ActiveSheet.UsedRange
    
    Open chemin & Nomfichier & ".txt" For Output As #1
     For Each Line In Range.Rows
      StrTemp = ""
             For Each Cell In Line.Cells
                 StrTemp = StrTemp & CStr _
                     (Cell.Text) & Separateur
             Next
            Print #1, StrTemp '= " "
        Next
    Close
        
    
    End Sub
    
    
    


    A+
    0
  14. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    Salut,

    Yes c'est possible :
    Ouvre le fichier contenant la macro, click droit sur la barre d'outils puis "Personnaliser". => Dans l'onglet commandes, choisis la catégorie macro puis fais un glisser/déposé du bouton personnalisé sur ta barre d'outils puis ensuite click droit sur le bouton => Affecter une macro et choisis la macro SaveAsTXT.

    Et voilà....

    A+
    0
    1. blueoystercult
       
      Ca va Tom? Guère de nouvelles ces derniers temps...
      0
  15. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    Salut Léo,

    Ca va, ça va (tant qi'il nest pas question d'assassiner la musique).....
    J'ai peu de temps en ce moment (boulot + musique = nombreux projets à gérer) et en plus j'ai plus de connexion perso, je me connecte du boulot.....
    Et toi, comment va ?
    0
  16. seb13
     
    Merci pour tous ça marche impeccable.
    0
    1. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
       
      De rien :-)

      A+

      Tom
      0
  17. maribeg23 Messages postés 9 Statut Membre
     
    salut,
    j'aimerais ecrire une macro qui à partir d'un fichier excel comportant plusieurs colonnes(15) me donne un fichier texte sur une seule colonne et plusieurs lignes(120) (pr une ligne dans le fichier Excel) et chaque ligne est referencé par une information sur les 15 colonnes ou par le vide.
    c'est trés urgent merci
    0
  18. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    C'est urgent et tu viens poster dans un sujet qui date de 4 ans : crées toi ta demande à toi et laisse les sujets qui n'ont rien à voir avec ta demande dormir en paix.
    0