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 :

Modifier fichier .txt avec une macro


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
    Stagiaire
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Par défaut Modifier fichier .txt avec une macro
    Salut à tous.

    Je cherche à écrire une petite macro toute simple qui me permettrait de rajouter du texte (venant d'un classeur Excel ou pas) à un fichier .txt.

    Pour l'instant je suis sur quelque chose du genre, juste pour découvrir les commandes et comment ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub TextModif()
     
    Filename = "D:\Test.txt"
     
    Open Filename For Output As #1
    Print #1, "Test"
    Print #1, Tab(8); Range("B3")
    Close #1
     
    End Sub
    Ce code ouvre effectivement le fichier Test.txt et vide complètement son contenu pour le remplacer par "Test", un saut de ligne, 7 tabulations et la valeur qu'il y a dans la cellule B3. Sur ce point là c'est bien, mais j'aimerais maintenant savoir comment faire pour que ce qu'il y avait avant dans le fichier ne soit pas supprimé par mon nouveau texte.

    En gros je voudrais pouvoir rajouter ce texte à la fin de mon fichier .txt, ou au début, ou à partir de la 5° ligne. Ou même faire un truc du genre "Si à un moment dans le fichier texte il y a la chaîne de caractères 'plop', insérer ici le contenu de la cellule A2". Mais je ne connais pas les commandes pour naviguer dans un fichier .txt et donc je suis un peu bloqué.

    Merci d'avance de votre aide !
    Quentin

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    va chercher le end of file EOF et tu continues à partir de là

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bonjour,


    tout simplement "Ajout ":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Open Filename For Append As #1

  4. #4
    Membre averti
    Homme Profil pro
    Stagiaire
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Par défaut
    Merci pour cette commande Append, c'est fort !

    Mais ça ne répond pas totalement à ma question, si j'ai envie de faire mes modifications à un endroit précis au milieu du fichier texte, est-ce que je peux dire à ma macro d'aller spécifiquement à telle ligne/tel endroit pour rajouter ou remplacer des trucs ?
    (et comment je lui dis de sauter une/plusieurs lignes ?)

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Tu ne peu pas il faut ré-écrire tout le fichier ...

  6. #6
    Invité
    Invité(e)
    Par défaut Bonjour, regarde ça
    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
    Sub TextModif()
     Dim TXT As String
     Dim TextLine As String
    Filename = "D:\Test.txt"
     
     
    Open Filename For Input As #1 'Ouverture du fichier en lecture.
    Do While Not EOF(1)
        Line Input #1, TextLine 'Lecture de la ligne
        If TextLine = "Ma Valeur" Then TXT = TXT & AjouterText() 'Si le test est concluant j'ajoute mes valeurs dans mon cas A, B, C, D…J
        TXT = TXT & TextLine & vbCrLf 'Je concatène mon texte
    Loop
    Close #1
     Open Filename For Output As #1 'Ouverture du fichier en écriture.
    Write #1, TXT 'Je stock dans mon fichier la variable TXT
    Close #1
    End Sub
    Function AjouterText() As String
    Dim I As Long
    For I = 0 To 10
    AjouterText = AjouterText & Chr(65 + I) & vbCrLf '65 =A 66=B ...
    Next
     
    End Function

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/05/2007, 18h50
  2. Réponses: 3
    Dernier message: 05/03/2007, 23h54
  3. modifier fichier .txt avec Visual Basic
    Par marco1980 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 29/09/2006, 20h19
  4. Réponses: 3
    Dernier message: 23/09/2006, 15h19
  5. [VBA-E] Exporter un fichier Web avec une macro
    Par Wilgard dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/05/2006, 12h25

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