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 :

Convertion ASCII vers texte


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1
    Par défaut Convertion ASCII vers texte
    Bonjour,

    On me fournit un fichier Excel de données (extraction de données AD).
    Les cellules sont en format "Standard" et le contenu est vu comme une chaine de caractère.
    Certaines lignes donc sont "normales" et je peux lire du texte "normal" (CN=xxxxx;OU=yyyyy; ....)
    Sur d'autre j'ai quelque chose comme "X'436f6d7074652064277574696c6973617465757220696e766974c3a9'"
    Rapidement on se rend compte que ce sont des caractères ASCII codés Héxadécimal.
    Si je prend la chaine et que je la converti j'obtiens bien du texte compréhensible "Compte d'utilisateur invité".

    Je recherche donc à convertir automatiquement les cellules (un peu éparpillées dans la feuille) de mon fichier qui contiendraient une ou des chaines de type "X'..........'" (une cellule peut contenir plusieurs chaines de ce type séparées par des ";") par une ou des chaines de caractères lisibles.
    Une possibilité est donc d'écrire une procédure VBA qui appellerait une fonction de conversion.
    Et je n'ai pas vraiment des compétences en VBA ...
    Est-ce que quelqu'un a déjà développé un truc de ce genre ?

    Merci,
    Pierre

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Je te propose cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function versascii(ByVal ch As String) As String
      For k = 1 To Len(ch) Step 2
        versascii = versascii & ChrW(Val("&h" & Mid(ch, k, 2)))
      Next k
    End Function
    A utiliser ainsi (exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim toto As String
    toto = "X'436f6d7074652064277574696c6973617465757220696e766974c3a9'"
    toto = Split(toto, "'")(1)
    MsgBox versascii(toto)
    Il te faudra ensuite intervenir pour remplacer certains caractères accentués (je te laisse ce soin, car il me faut partir).

Discussions similaires

  1. convertion hexa vers ascii
    Par amina_en dans le forum Assembleur
    Réponses: 1
    Dernier message: 11/01/2012, 14h04
  2. Convertion char vers int
    Par barthelv dans le forum C
    Réponses: 8
    Dernier message: 08/10/2011, 21h45
  3. Convertion ASCII vers UNICODE
    Par blackstrobe dans le forum Langage
    Réponses: 4
    Dernier message: 27/07/2007, 20h48
  4. Conversion texte Ascii vers Image ou Pdf
    Par davydreyAXESS dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2006, 15h45

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