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 :

Ecrire dans fichier texte


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Ecrire dans fichier texte
    Bonjour,

    à partir de mon classeur excel initial, j'ouvre un fichier texte. Dans ce fichier texte, je voudrais remplacer certains caractères.

    je m'explique: voila par exemple les 2 premières lignes de mon fichier texte:

    :10057000073C073C0C0A1E07010000010071030044
    :1005800002030000000101010000000000FA010068

    j'ai en parallele une variable dim Nouvel as integer, tel que ici, Nouvel = 22

    je veux remplacer les caractères en rouge de mon fichier texte par la valeur de la variable Nouvel.

    plus clairement je veux obtenir un fichier texte tel que celui ci:
    :10057000073C073C0C0A1E07010022010071030044
    :1005800002030000220101010000000000FA010068


    j'espere que j'ai reussi à me faire comprendre,

    merci d'avance

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Connais-tu au moins la position des caractères à remplacer ?

  3. #3
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Bonsoir,


    En supposant que tes caractéres à remplacer sont toujours au même endroit..?
    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
     
    Sub YaKA()
     'Pour évitez de calculer la positon de ces 22 j'utilise les chaines exemples
     ST1bis = ":10057000073C073C0C0A1E07010022010071030044"
     ST2bis = ":1005800002030000220101010000000000FA010068"
     iPos1 = InStr(ST1bis, "22")
     iPos2 = InStr(ST2bis, "22")
     ' La positon des 22 et connu :
     Debug.Print "Position du 22 dans 1°Chaine : " & iPos1
     Debug.Print "Position du 22 dans 2°Chaine : " & iPos2
     
     '
     '  Maintenant que nous connaisons la position du 22 à obtenir
     '
     '
     St1 = ":10057000073C073C0C0A1E07010000010071030044"
     St2 = ":1005800002030000000101010000000000FA010068"
     
     Debug.Print "Chaine 1 : " & St1
     Mid(St1, iPos1, 2) = "22"
     Debug.Print "Devient  : " & St1
     
    Debug.Print "Chaine 2 : " & St2
     Mid(St2, iPos2, 2) = "22"
     Debug.Print "Devient  : " & St2
     
    End Sub

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    en fait j'ai mal posé ma question...

    au niveau codage pour le remplacement je pense savoir faire...
    les positions et les caractères à changer ne sont jamais les mêmes ms je les connais et je les ai stockés dans des variables.

    mon problème s'agit plus au niveau des opérations concernant l'éciture dans un fichier texte.

    j'arrive à ouvrir ce fichier ms je en sais pas comment écrire sur celui-ci en ne remplaçant que les caractères que je veux.

    je ne maitrise pas les opérations output, input, print, write, debug....
    donc il faudrait que qqn m''explique...

    merci

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    Il te faut ouvrir deux fois ton fichier : Une fois en lecture et une fois en écriture.
    Je te suggère de l'ouvrir en lecture dans une variable, d'un seul coup (tu as eu encore un exemple sur ce forum il y a quelques jours à peine...). Ferme ensuite ton fichier.

    Appelons toto cette variable (traite-là comme tu l'entends), puis rouvre ton fichier en écriture (open ..... for Output as #1) et écrase-le par le contenu de ta variable ... ===>> Print #1, toto
    et ferme-le.

    EDIT : voilà===>> je te suggère de te "pencher" sur l'intervention n° 5 de la discussion suivante :
    http://www.developpez.net/forums/d59...txt-vba-excel/
    Tu y trouveras ce qu'il te faut, à adapter comme tu l'entends à ton problème.

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

Discussions similaires

  1. Vb.net ecrire un datareader dans fichier texte
    Par Gregney dans le forum VB.NET
    Réponses: 2
    Dernier message: 09/04/2015, 10h17
  2. Ecrire un tableau de cellules dans fichier texte
    Par Vince_14 dans le forum MATLAB
    Réponses: 7
    Dernier message: 15/04/2011, 17h47
  3. Ecrire un fichier texte dans un listbox
    Par chlours dans le forum C++
    Réponses: 0
    Dernier message: 22/04/2008, 11h03
  4. ecrire a la ligne dans fichier texte.
    Par zulot dans le forum Langage
    Réponses: 7
    Dernier message: 12/09/2006, 12h02
  5. Insertion dans fichier texte + rapide que TStringList ?
    Par benj63 dans le forum C++Builder
    Réponses: 8
    Dernier message: 26/02/2004, 11h34

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