Extraction de données d'un chaine

  • Initiateur de la discussion Initiateur de la discussion JujuWol
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

JujuWol

XLDnaute Nouveau
Bonjour,

Même après avoir rechercher sur le forum je n'ai pas trouvé de réponse répondant spécifiquement à mon problème.

J'ai une chaine de caractère de ce type :

4014,0,0,1082671,932970,197,1862,65535,0,982,14321,464,4983,70*52
4014,0,0,1082671,9329763052,197,1864,65535,0,982,12647,310,5222,-32*78
4014,0,0,1082671,932976368,197,1866,65535,0,982,9036,293,4981,-77

Pour lesquelles les valeurs de toutes les infos "entre-virgules" peuvent varier : longueur différente, chiffres ou lettres etc....

Le but est d'extraire l'antépénultième valeur de cette chaîne donc pour les trois lignes ci-dessus : 464, 310 et 293.

Les chaînes étant susceptibles de varier en longueur, par les classiques left ou right ou mid je n'ai pas trouvé de solutions. J'ai essayé avec la fonction "InStr" mais je ne sais pas exactement comment la paramétrer.

Je pense qu'il faudrait faire un comptage des virgules et récupérer la valeur comprise entre la 11ème et la 12ème virgule mais est-ce possible sans passer par du VBA ? Si c'est du VBA un petit coup de pouce serait le bienvenu. ;-)

Merci d'avance pour toutes vos réponses

Julien
 
Re : Extraction de données d'un chaine

Merci à tous les deux pour ces réponses.
La réponse de hoerwind fonctionne mais malheureusement pas celle de pierrejean.
Cette dernière est plus interessante pour moi et je ne sais pas pourquoi elle ne fonctionne pas.
A l'ouverture du fichier XLS j'ai une erreur sur la signature des macros, comme souvent. Je change les paramètres de sécurité, mais meme avec cela elle ne fonctionne pas.

La réponse de PierreJean est plus interessante car elle fait appelle à moins de fonction. Je m'explique, je travaille avec un logiciel de cartographie qui gère des tables de valeurs et pour lesquelles je peux être amené à faire soit du VBA soit du calcul avec des fonctions simples et malheureusement la fonction "Substitue" ou "Cherche" n'en font pas parties...

Je ne dispose en fait que de ces fonctions (ou du VBA bien sur...)

Asc ( ) Chr ( ) Format ( ) InStr ( ) LCase ( ) Left ( )
Len ( ) LTrim ( ) Mid ( ) QBColor ( ) Right ( ) RTrim ( )
StrConv ( ) Space ( ) String ( ) Trim ( ) UCase ( )

Comment faire fonctionner la solution de PierreJean ou est-il possible d'y arriver avec ces fonctions ci-dessus ?

Merci encore à tous les deux.

Julien
 
Re : Extraction de données d'un chaine

En fait la fonction de PierreJean fonctionne, il manquait seulement un signe "multiplier" dans la formule qui faisait un message d'erreur dans la cellule.

Je teste et vous dis si ça marche !

Merci encore

Julien
 
Re : Extraction de données d'un chaine

C'est bon ça fonctionne...🙂
La bonne formule VBA étant : (reprise du code de PierreJean)

Dim Mes
Mes = Split([Mesure], ",")

Et dans ma zone d'affectation de valeurs :

Mes(11)

😉

Merci encore

Julien
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour