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 :

[VBA-E]Supprimer caractere invisible


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut [VBA-E]Supprimer caractere invisible
    Salut,

    ce post viens dans la suite d'un autre dans lequel je cherchais à récuperer une ligne d'un fichier texte. J'arrive à la récupérer et voici ce que j'obtient avec le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Debug.Print "<" & TextLine & ">"
    Résultat : < INDICBAT>

    Il y a des sortes d'espaces avant et je voudrais les supprimer

    J'ai tenté avec ce code (Stlu contient la chaine) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Do While Left(stLu, 1) = Chr(13)
        stLu = Right(stLu, Len(stLu) - 1)
        MsgBox "hu"
    Loop
    Debug.Print "<" & stLu & ">"
    mon idée est : regarder le premier caractere de la chaine. Si c'est un espace on garde la chaine à laquelle on retire le premier caractere et on recommence.

    mais ca ne fonctionne pas j'ai toujours : < INDICBAT> et je n'ai pas de msgbox "hu" qui apparait.

    donc j'ai tenté d'autres possibilités comme chr(9) (tab) mais pareil... j'ai vu dans l'aide que les caracteres invisibles prenaient des valeurs de 1 à 31 alors j'ai ai toutes essayées et aucun résultat

    une idee?

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    si c'est "INDICBAT" qu'il te faut récupérer, tu as sa position de départ (utilisation de instr pour la déterminer ! aide en ligne ) et tu as sa longueur (len ! aide en ligne) et l'utilisation de Mid (aide en ligne) pour n'extraire que ton mot ...

  3. #3
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Citation Envoyé par Elstak

    Il y a des sortes d'espaces avant et je voudrais les supprimer
    C'est quoi c'est des espaces ou c'est autre chose ?
    Sinon quand tu l'insère tu fais un Replace et tu remplace le caractère Espace par rien
    Tu peut aussi utiliser la fonction Trim, qui te permet de supprimer les espaces d'une chaines de caractère L'aide en ligne est une très bonne aide si tu veux plus de précision

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Voila qui fera ton bonheur je pense...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    stLu = Trim(stLu)
    Debug.Print "<" & stLu & ">"

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    ca commence à me gaver ces fichiers textes tout bizarres !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Open NomFic For Input As #1    ' Ouvre le fichier.
    Do While Not EOF(1)    ' Effectue la boucle jusqu'à la fin du fichier.
         Line Input #1, TextLine        ' Lit la ligne dans la variable.
         If (InStr(TextLine, "INDICBAT")) > 0 Then
             Debug.Print "<" & TextLine & ">"
             Trouve = True
             Exit Do
         End If
    Loop
    Trim (stLu)
    Debug.Print "<" & stLu & ">"
    j'ai donc tenté le "Trim" et voici le résultat (avant/apres) :

    < INDICBAT 2006-05-14 54904 474604>
    <>

    ca supprime lse espace ca c'est sur mais ca supprimer meme les infos !!

    et donc pour info, jmf, non je ne veux pas que le INDICBAT je veux surtout les info derriere.

  6. #6
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Salut Elstak,
    ré-essaye avec TRIM( ). Regarde le code que tu as posté: C'est quoi, StLu ?
    Très franchement, je pense que TRIM() va te plaire...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Tiens salut bipbip ca faisait longtemps

    jme suis un peu précipité en fait là desolé

    en effet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Open NomFic For Input As #1    ' Ouvre le fichier.
    Do While Not EOF(1)    ' Effectue la boucle jusqu'à la fin du fichier.
         Line Input #1, TextLine        ' Lit la ligne dans la variable.
         If (InStr(TextLine, "INDICBAT")) > 0 Then
             stLu = TextLine
             Trouve = True
             Exit Do
         End If
    Loop
    Debug.Print "<" & stLu & ">"
    stLu = Trim(stLu)
    Debug.Print "<" & stLu & ">"
    ca me donne :

    < INDICBAT 2006-05-14 54904 474604>
    <INDICBAT 2006-05-14 54904 474604>

    J'ai du virer involontaierment la ligne



    en tout cas merci à tous !!

  8. #8
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Mézalor: ton problème est résolu!!

  9. #9
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Ca c'est pas mal lo il oublie une ligne importante MDR

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    a="Mais ou est passé a???"
    msgbox "a = " & b

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    ??

  11. #11
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    C'était ironique...

    Je voulais dire que si forcément tu oubliais cette ligne :

    Ca pouvait difficilement aller avec mon exemple... LOL

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Ok jviens de ton comprendre

    on ne se moque pas !!

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

Discussions similaires

  1. [String] supprimer caractere genant
    Par agougeon dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 13/10/2005, 21h48
  2. [VBA-E]Supprimer l'affichage des barres de menus
    Par ecoinfo dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/10/2005, 00h48
  3. [VBA][Excel]Supprimer une partie du texte d'une grosse liste
    Par annedeblois dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/09/2005, 17h15
  4. [VBA-E] supprimer le contenu de toutes les cellules d'une feuille
    Par BipBip2 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/08/2004, 15h13

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