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 :

Manip de chaînes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut Manip de chaînes
    Bonjour,

    J'ai 2 questions portant sur les chaînes :

    1/
    Y aurais t-il un moyen simple de supprimer les blanc en fin d'une chaîne sans la balayer caractère par caractère en partant de la fin ?

    2/
    J'ai une chaîne comportant plusieurs données séparée par un point-virgule

    Actuellement j'utilise le code suivant pour les récupérer et les affecter dans mes cellules (balayage de la chaîne ligne caractère par caractère) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Do Until pos > Len(ligne)
        cel = ""
        col = col + 1
        Do Until pos > Len(ligne) Or Mid(ligne, pos, 1) = ";"
            cel = cel + Mid(ligne, pos, 1)
            pos = pos + 1
        Loop
        pos = pos + 1
        Worksheets(feuille).Cells(lig, col).Value = cel
    Loop
    Y aurais t-il une instruction de chaîne qui permette de trouver la position du point-virgule dans ma chaîne afin d'éviter la boucle interne ?

    De facon plus général une instruction permettant de trouver une chaine dans une autre chaîne

    Merci

  2. #2
    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
    Par défaut
    Bonjour,

    1) : RTrim te fera le boulot ... ou Trim, si tu veux aussi supprimer en dévut.

    2) : Voir Split dans ton aide en ligne.

  3. #3
    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
    Par défaut
    Quelle version d'Excel as-tu ?
    Split n'existe pas dans la version 97, mais pour les versions utltérieure, et comme le dit ucfoutu, c'est la solution à ton second pb

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut
    Merci beaucoup de votre aide

  5. #5
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Bonjour,

    pour la première Question

    Trim et fait F1

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    1 - Regardes du coté des fonctions RTrim, LTrim et Trim

    2 - Pour trouver un caractére regardes du coté de InStr. Pour ton cas interresses toi à la fonction Split.

    Starec

  7. #7
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    mouais, ca serait plus simple de mettre la chaine dans le cellule et de laisser redistribuer
    Genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Range("J10").Value = ligne
    Range("J10").TextToColumns Destination:=Range("J10"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, Semicolon:=True

  8. #8
    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
    Par défaut
    Citation Envoyé par bidou Voir le message
    mouais, ca serait plus simple de mettre la chaine dans le cellule et de laisser redistribuer
    Genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Range("J10").Value = ligne
    Range("J10").TextToColumns Destination:=Range("J10"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, Semicolon:=True


    Tu devrais venir plus souvent

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut
    Je viens de voir la réponse de bidou, merci beaucoup, effectivement c'est beaucoup plus simple, ca m'évite toute mon code

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut
    Arf, le problème de la solution de bidou, c'est que j'ai besoin de connaitre le nombre de colonnes crée, peut-on le connaitre ?

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Inverser une chaîne de caractères
    Par DBBB dans le forum Assembleur
    Réponses: 2
    Dernier message: 30/03/2003, 11h09
  3. Comptage de mots dans une chaîne
    Par kikinou dans le forum Pascal
    Réponses: 10
    Dernier message: 01/01/2003, 02h27
  4. [Manip de fichiers] Fonction retournant des infos
    Par sans_atouts dans le forum C
    Réponses: 3
    Dernier message: 24/07/2002, 14h16
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

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