Extraction de texte dans une chaine de caractère

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 !

Risbal14

XLDnaute Nouveau
Bonjour à tous,

Je recherche désespérément une solution pour extraire les valeurs dans une chaîne de caractère avec le format suivant (fichier exemple en PJ) :

WWWW Go XXXX Mo YYYY Ko ZZZZ (exemple : 120 Go 20 Mo 1 Ko 857 ou 12 Go 10 Ko 115 ou 10 Mo 1 Ko 120)

WWWW correspondant au nombre de Go (variable de 1 à l'infini)

XXXX correspondant au nombre de Mo (variable de 1 à 1024)

YYYY correspondant au nombre de Ko (variable de 1 à 1024)

ZZZZ correspondant au nombre d'octets (variable de 1 à 1024)

Sachant que chaque unité est séparée dans la cellule par un espace avant et un espace après.

Mon objectif est soit d'extraire chaque valeur indépendamment (pour les Go, Mo, Ko et octests) soit de convertir cette chaîne en Mo.

Je vous remercie d'avance pour votre aide.

Bonne soirée.

Cordialement.
 

Pièces jointes

Re : Extraction de texte dans une chaine de caractère

Bonjour Yaloo et JHA,

C'est parfait, un grand merci pour votre aide.

Juste une dernière question, est-il possible de n'avoir qu'une seule formule pour déterminer directement le volume en Mo (colonne F).

Cette formule doit me servir dans un fichier avec beaucoup de lignes (> 100 000 L).

J'ai peur que de rajouter des colonne ralentisse le traitement des calculs.

A vous lire et encore un grand merci à vous deux.

Cordialement.
 
Re : Extraction de texte dans une chaine de caractère

Bonjour à tous

Cela commence à faire lourd en une formule pour "F2"
Code:
=(SIERREUR(GAUCHE(A2;CHERCHE("Go";A2;1)-1)*1;0))*1024+(SI(ET(ESTNUM(CHERCHE("Mo";A2;1));B2>0);STXT(A2;(CHERCHE("Go";A2;1)+2);(CHERCHE("Mo";A2;1)-1)-(CHERCHE("Go";A2;1)+2))*1;SI(ESTNUM(CHERCHE("Mo";A2;1));GAUCHE(A2;CHERCHE("Mo";A2;1)-1);0)))+(SI(ESTNUM(CHERCHE("Ko";A2;1));GAUCHE((SI(C2>0;SUBSTITUE(A2;GAUCHE(A2;CHERCHE("Mo";A2;1)+2);0);SI(B2>0;SUBSTITUE(A2;GAUCHE(A2;CHERCHE("Go";A2;1)+2);0);SI(ESTNUM(CHERCHE("Ko";A2;1));A2;0))));CHERCHE("Ko";(SI(C2>0;SUBSTITUE(A2;GAUCHE(A2;CHERCHE("Mo";A2;1)+2);0);SI(B2>0;SUBSTITUE(A2;GAUCHE(A2;CHERCHE("Go";A2;1)+2);0);SI(ESTNUM(CHERCHE("Ko";A2;1));A2;0))));1)-1);0))/1024+(SI(ESTNUM(CHERCHE("Ko";A2;1));GAUCHE((SI(C2>0;SUBSTITUE(A2;GAUCHE(A2;CHERCHE("Mo";A2;1)+2);0);SI(B2>0;SUBSTITUE(A2;GAUCHE(A2;CHERCHE("Go";A2;1)+2);0);SI(ESTNUM(CHERCHE("Ko";A2;1));A2;0))));CHERCHE("Ko";(SI(C2>0;SUBSTITUE(A2;GAUCHE(A2;CHERCHE("Mo";A2;1)+2);0);SI(B2>0;SUBSTITUE(A2;GAUCHE(A2;CHERCHE("Go";A2;1)+2);0);SI(ESTNUM(CHERCHE("Ko";A2;1));A2;0))));1)-1);0))/(1024*1024)

puis tirer vers le bas

JHA
 
Re : Extraction de texte dans une chaine de caractère

Bonjour à tous,

Je me permet de relancer ce post.

J'ai besoin d'intégrer la macro de Yaloo dans une macro plus complexe en VBA et en ne conservant que le résultat de la colonne F (volume en Mo) du fichier joint.

Yaloo a utilisé des fonctions que je n'arrive pas à visualiser.

Quelqu'un a t-il une idée du code pour effectuer cette conversion directement en VBA en ne conservant que le résultat de la colonne F (volume en Mo)?

Merci de votre aide.

Boris.
 

Pièces jointes

- 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

Réponses
9
Affichages
1 K
Retour