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

Excel Discussion :

Trouver le premier espace à partir de la fin d'une chaîne de caractères. [XL-2013]


Sujet :

Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 176
    Points : 80
    Points
    80
    Par défaut Trouver le premier espace à partir de la fin d'une chaîne de caractères.
    Bonjour,

    Je ne vois pas comment trouver le premier espace à droite d'une chaîne de caractères (je veux dire en commençant par la fin).
    Quelqu'un a une idée ?

    Merci d'avance

    Henri

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Avec Excel contrairement à VBA il n'y a pas de formule permettant de faire une recherche à partir de la droite d'une chaîne.
    Toutefois les formules CHERCHE et TROUVE qui permettent de faire une recherche (de gauche vers droite) sur une chaîne ont un troisième argument qui indique à partir de quel caractère ont commence la recherche.
    Avec quelques calcul arithmétique dont les éléments seraient issus des formules SUPPRESPACE, STXT tu devrais pouvoir t'en sortir. Encore faut-il connaître la finalité parce-que si c'est juste pour connaître le 1er caractère d'une chaîne à enlever par la droite pour ne pas avoir d'espaces après celle-çi. L'utilisation de SUPPRESPACE suffit.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Formule matricielle (valider avec Ctrl+Maj+Entrée); la chaîne de caractères est en A1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)=" ";LIGNE(INDIRECT("1:"&NBCAR(A1)))))

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 492
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 492
    Points : 16 400
    Points
    16 400
    Par défaut
    Bonjour

    Une variante non matricielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CHERCHE("µ";SUBSTITUE(A1;" ";"µ";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))))

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 176
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Avec Excel contrairement à VBA il n'y a pas de formule permettant de faire une recherche à partir de la droite d'une chaîne.
    Toutefois les formules CHERCHE et TROUVE qui permettent de faire une recherche (de gauche vers droite) sur une chaîne ont un troisième argument qui indique à partir de quel caractère ont commence la recherche.
    Avec quelques calcul arithmétique dont les éléments seraient issus des formules SUPPRESPACE, STXT tu devrais pouvoir t'en sortir. Encore faut-il connaître la finalité parce-que si c'est juste pour connaître le 1er caractère d'une chaîne à enlever par la droite pour ne pas avoir d'espaces après celle-çi. L'utilisation de SUPPRESPACE suffit.
    Bonjour Philippe,

    Je vous remercie pour votre réponse, mais vous et moi allons apprendre quelque chose de Chris aujourd'hui puisqu'il a trouvé une formule pour sortir la position du dernier espace.
    Si vous l'avez sous la main, je serai heureux de connaître la fonction VBA qui permet de faire cette recherche.

    Merci encore pour votre participation.

    Henri

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 176
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par Daniel.C Voir le message
    Bonjour,

    Formule matricielle (valider avec Ctrl+Maj+Entrée); la chaîne de caractères est en A1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)=" ";LIGNE(INDIRECT("1:"&NBCAR(A1)))))

    Bonjour Daniel,

    Merci pour la formule matricielle.
    Je n'ai jamais utilisé ce type de formule, je l'ai placé en A2, mon texte en A1, mais je ne suis pas parvenu à obtenir autre chose que 0.
    Pouvez-vous m'en indiquer le fonctionnement ?

    Merci d'avance.

    Henri

  7. #7
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 492
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 492
    Points : 16 400
    Points
    16 400
    Par défaut
    Bonjour
    Citation Envoyé par Henri1830 Voir le message
    Bonjour Daniel,

    Merci pour la formule matricielle.
    Je n'ai jamais utilisé ce type de formule, je l'ai placé en A2, mon texte en A1, mais je ne suis pas parvenu à obtenir autre chose que 0.
    Pouvez-vous m'en indiquer le fonctionnement ?

    Merci d'avance.

    Henri
    Ne pas valider par entrée mais avec Ctrl+Maj+Entrée (les 3 touches en même temps)

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 176
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par 78chris Voir le message
    Bonjour

    Une variante non matricielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CHERCHE("µ";SUBSTITUE(A1;" ";"µ";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))))
    Bonjour Chris,

    Merci pour la formule, c'est très astucieux.
    J'ai dû m'y reprendre à plusieurs fois avant de comprendre le fonctionnement. Bravo !

    Henri

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par 78chris Voir le message
    Bonjour

    Une variante non matricielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CHERCHE("µ";SUBSTITUE(A1;" ";"µ";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))))
    Bonjour à tous
    Une petite suggestion pour ceux que la formule interesse : remplacer (3 fois dans la formule) A1 par SUPPRESPACE(A1) pour ne pas être "ennuyé" par d'éventuels espaces avant / après le texte "utile"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CHERCHE("µ";SUBSTITUE(SUPPRESPACE(A1);" ";"µ";NBCAR(SUPPRESPACE(A1))-NBCAR(SUBSTITUE(SUPPRESPACE(A1);" ";""))))

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/01/2014, 10h42
  2. [XL-2003] Incrémenter des chiffres à la fin d'une chaîne de caractères
    Par Mattouf dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 26/04/2012, 15h56
  3. [WD-2003] Trouver le premier tableau à partir d'un endroit d'un fichier
    Par Yoyo57 dans le forum VBA Word
    Réponses: 12
    Dernier message: 05/08/2010, 21h16
  4. Réponses: 1
    Dernier message: 01/09/2008, 15h45
  5. Méthodes qui enlève les espaces debut et fin d'une chaîne
    Par magiklife dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/07/2008, 08h49

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