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 :

Fichier .txt ; enregistrer en ANSI


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut Fichier .txt ; enregistrer en ANSI
    Bonjour,

    Je souhaiterais pouvoir travailler sur un fichier .txt en utilisant une macro Excel (modifier des données). Un problème est que pour être lu ensuite par une application, le fichier .txt a besoin d'être enregistré en utilisant le codage ANSI et non UTF-8. Lorsque je modifie le fichier .txt à la main c'est simple, il n'y a qu'à enregistrer sous puis sélectionner le codage ANSI. Mais comment dire à une macro VBA d'effectuer cette manipulation ?

    Merci d'avance !

  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
    Points : 2 553
    Points
    2 553
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim sSourceString As String ' la string en  UTF-8
    Dim ANSIString() As Byte, MyEncoder As New System.Text.ASCIIEncoding()
    ANSIString = MyEncoder.Convert(System.Text.Encoding.UTF8,System.Text.Encoding.ASCII, MyEncoder.GetBytes(sSourceString))

  3. #3
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    je ne suis pas très connaisseur en VBA, donc je ne comprends pas vraiment comment fonctionne cette portion de code dans ton message. Je suis censé l'insérer dans ma macro, avant/après avoir fait les modifications dans le fichier .txt ?

    Merci de l'aide en tout cas.

  4. #4
    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
    Points : 2 553
    Points
    2 553
    Par défaut
    Cette procédure va te changer une string UTF en une string ANSII

    Donc pour faire simple, tu fais tout ton bordel, puis tu selectionnes tout ton txt tu le fous dans une variable et tu passes la fonction convert dessus, tu vires l'ancienne string tu mets la nouvelle tu sauvegardes et basta

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Salut,

    y a pas une référence à activer ? Car de mon côté la compil ne passe pas …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Oui, de mon côté le code n'a pas l'air d'être accepté par VBA non plus, la 2° ligne semble être en cause (la partie "MyEncoder As New System.Text.ASCIIEncoding()" précisément...)

  7. #7
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Avec du code VB.Net ça m'étonnerai que ça marche

    Hervé.

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    J'en pensais pas moins d'où ma question à EngueEngue ! …

    QuentinR, en attendant sa réponse, en recherchant sur ce site tu peux trouver une usine convertissant l'UTF8 …

    … sinon j'ai dans un coin une vieille p'tite procédure perso traitant bien les caractères courants mais
    il me faudrait quand même un extrait de ton fichier texte à convertir pour vérifier si elle convient ou pas …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    en mon temp, j'ai trouvé ça sur le web, je ne sais plus qui est l'auteur en tous cas ce n'est pas moi.
    http://www.developpez.net/forums/d13...ier-txt-macro/
    Dernière modification par Invité ; 14/10/2013 à 18h57.

  10. #10
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    Bonsoir,
    notre ami QuentinR devra prochainement savoir qu'il est inutile de multiplier les discussions pour un même problème.
    Eclaircir son problème en fonction des réponses et commenter ces réponses, en informant qu'elles ne correspondent pas à ses attentes est préférable.

    Cela dit, il me semble que l'entrée de sa question ici ne semble pas avoir obtenu une réponse satisfaisante.
    As tu essayé de réenregistrer le fichier avec la méthode SaveAs en définissant l'argument FileFormat sur ce que tu souhaites?

    Par ailleurs il y a une fonction simpliste native en VBA pour une conversion Unicode en ANSI.
    Il s'agit de la fonction StrConv.
    Ousmane


    Quand on tombe dans l'eau, la pluie ne fait plus peur.

Discussions similaires

  1. Enregistré sous un fichier .txt
    Par Max(soul) dans le forum Dynamique
    Réponses: 26
    Dernier message: 16/01/2007, 16h09
  2. Réponses: 1
    Dernier message: 27/06/2006, 19h34
  3. [VBA-E] enregistrement fichier txt - date
    Par Lnmex dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 07/06/2006, 20h03
  4. Réponses: 1
    Dernier message: 14/04/2006, 17h51
  5. enregistrer une donnee dans un fichier txt
    Par zorglub88 dans le forum MFC
    Réponses: 33
    Dernier message: 27/01/2006, 16h13

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