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 :

Macro excel , batch et accents [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    ouvrier
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut Macro excel , batch et accents
    Bonjour à tous ,

    j'écris ce post car je n'arrive pas à résoudre mon problème, et j'éspère que vous pourrez m'aider.

    Comme indiqué dans le titre , j'ai un soucis avec les accents dans les fichiers batch. J'ai trouvé une multitude de post traitant de ça sur le net, mais aucun ne correspond exactement à mon cas de figure ,de sorte que je n'arrive pas à adapter les solutions citées dans ces posts à mon problème... (il faut savoir que j'ai de piètres connaissances en vba , et que c'est encore pire en MS-DOS!! )


    Alors voilà :

    j'ai un fichier excel qui génère un fichier texte par macro ,et y inscrit le mot "Allégés"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    num = FreeFile
    plop = "Allégés"
     
     
    Open "C:\plop.txt" For Output As #num
     
                    Print #num, Spc(0); "2"; ";"; plop
     
            Close #num
    J'ai ensuite un fichier batch qui lit ce fichier texte :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    for /f "tokens=1,2* delims=;" %%a in (c:\plop.txt) do (echo "%%b")
    pause
    malheureusement ,mon fichier batch lit : AllÚgÚs

    (comme vous l'avez surement compris ,ceci est une adaptation simplifiée de mon projet.)

    Apparemment ,le problème est résolu si j'ouvre mon fichier texte manuellement et le sauvegarde en document texte MS-DOS , mais mon projet n'a plus d'utilité si je dois faire cette manip moi-même ,et je suis incapable de la faire faire par macro excel



    -j'ai essayé de créer manuellement une sorte de "base" de mon fichier texte ,converti en document texte MS-DOS par mes soins et de lancer ma macro ,mais dans ce cas mon fichier "perd" sa compatibilité MS-DOS

    -j'ai essayé de créér mon fichier texte avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim fso  As Object
    Dim dat As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    Set dat = fso.CreateTextFile("D:\plop.txt", , true)
    mais le problème reste le meme , ca ne le convertit pas en Ms-DOS

    -J'ai essayé de remplacer les accents par des virgules ou par des chr(44) avec la commande REPLACE dans ma macro ( puisque les accents sont remplacés par des virgules dans mon fichier texte après conversion en document texte MS-DOS )
    mais mon fichier batch lit : All,g,s

    (les virgules sont différentes en fonction du codage ,apparemment ^^')

    -j'ai essayé d'ajouter la commande CHCP 1252>nul au début de mon fichier batch pour en modifier la table de code (il semblerait que les accents soient pris en compte dans la 1252),mais ça ne marche pas non plus (----> AllÚgÚs )

    j'ai trouvé d'autres pistes sur le net ,mais que je ne comprend pas et donc qui me sont impossibles à adapter ,donc je les ai ignorées....

    du coup je me retrouve comme un couillon avec mon problème insolvable

    Vous avez une solution ?

  2. #2
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour ludolato


    Tu pourrais utiliser la table sur cette page http://fr.wikipedia.org/wiki/Page_de_code_850
    pour modifier les caractères accentués avant de générer ton fichier txt.
    .

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Set dat = fso.CreateTextFile("D:\plop.txt",TRUE , true)
    Dernière modification par Invité ; 02/06/2015 à 08h33.

  4. #4
    Membre à l'essai
    Homme Profil pro
    ouvrier
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut
    bonjour a vous

    merci d'avoir répondu aussi rapidement

    je file au boulot ,je testerais tout ça ce soir.
    Je vous tiendrais au courant

    bonne journée

  5. #5
    Membre à l'essai
    Homme Profil pro
    ouvrier
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut
    Me revoila :

    @rdurupt

    le True que tu as rajouté à ma ligne de code sert à indiquer si un fichier existant peut être remplacé ,inutile donc dans mon cas.

    Le 2eme True par contre sert à créer le fichier sous forme de fichier Unicode , un False permettant de le créer sous forme d'un fichier ASCII , ce qui ,je pensais ,résoudrait mon problème .

    Hélas ,la valeur False me donne le même résultat , à savoir --->AllÚgÚs , tandis que la valeur True me donne carrément aucun résultat !



    @Docmarti

    Effectivement , je pourrais essayé ça ,mais je n'ai aucune idée de comment procéder....

    il faut savoir que j'ai de piètres connaissances en vba , et que c'est encore pire en MS-DOS!!


    tu pourrais m’éclairer sur le sujet ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    bonsoir,
    le code ascii etendu dos commence à Chr(128) et fini à Chr(255) si tu crée un tableau avec toutes les valeur ascii et un tableau avec les caractères Windows équivalant tu peux faire un replace du caractère par le Chr() du code equivalant dos!

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

Discussions similaires

  1. [XL-2007] Lancer une macro Excel 2007 depuis un fichier batch
    Par kedmard dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 30/03/2012, 16h06
  2. Macro excel perso.xls et évènement commandButton1_click()
    Par Annie dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/09/2005, 19h05
  3. [macro Excel]
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/09/2005, 09h54
  4. débutant en VBA je n'arrive pas à finir ma macro excel
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/01/2005, 12h20
  5. Porter une macro Excel vers OpenOffice
    Par totofweb dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 13/07/2004, 13h20

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