Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Manipulation de chaine de caratére(Position et découpage de chaine)

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 !

Tatiana29

XLDnaute Occasionnel
Bonjour à tous!
je suis en train d'essayer de construire une formule sous excel.
j'ai plusuers chaines de caractères soit composé de 3,2 ou 1 chiffre et l'objectif est de gardé le dernier chiffre comme dans l'exemple ci dessous.

je dois faire une formule qui detecte l'avant dernier "." de la liste quand ya 2 ou 3 chiffres et qui restitue la fin de la chaine,donc le dernier chiffre!

je viens de me lancer sur le sujet!

Si quelqu'un veut participer à la reflexion!

welcome
tatiana

3 630.48 112 003.72 => 112 003.72
16.15 30.76 1 052.46 => 1 052.46
631.43 => 631.43
0.23 1.85 58.41 =>58.41
3 314.88 => 3 314.88
 
Re : Manipulation de chaine de caratére(Position et découpage de chaine)

Bonjour.

j'ai plusuers chaines de caractères soit composé de 3,2 ou 1 chiffre
Vous voulez sans doute parler de nombres ?

Joignez donc un fichier avec quelques exemples (données de base, contraintes, résultats attendus).

Edit : Bonjour, Jean-Claude 🙂
 
Dernière édition:
Re : Manipulation de chaine de caratére(Position et découpage de chaine)

Bonjour à tous,

Peux-tu mettre tes valeurs dans un fichier XL ?

Tes données en A et le résultat souhaité en B

A + à tous
 
Re : Manipulation de chaine de caratére(Position et découpage de chaine)

Bonjour

Ton affichage est-il toujours sous le format # ### ##0.00
Ou les zéros après le point ne sont pas afficher ?

Autrement dit
Cet affichage est possible ?
16.1 30.76 1052
 
Re : Manipulation de chaine de caratére(Position et découpage de chaine)

Bonjour à tous,
Salut Patrick,
Salut Habitude,

Jolie fonction...

Puis-je me permettre pour avoir une valeur calculable ?
Private Sub CommandButton1_Click()
For Each cell In Range("A:A").SpecialCells(xlCellTypeConstants): cell.Offset(, 1) = Format(ct(cell.Value) * 1, "# ##0.00"): Next cell
End Sub

A++
A + à tous
 
Re : Manipulation de chaine de caratére(Position et découpage de chaine)

bonjour,

Une petite formule à s'arracher les cheveux. Si nombres en A1, alors en En B1 :
Code:
=CNUM(SIERREUR(DROITE(A1;(NBCAR(A1)-(CHERCHE("+";SI(ET(NON(ESTERREUR(CHERCHE(".";A1;CHERCHE(".";A1)+1)));ESTERREUR(CHERCHE(".";A1;CHERCHE(".";A1;CHERCHE(".";A1)+1)+1)));SUBSTITUE(A1;".";"+";1);SI(ET(ESTERREUR(CHERCHE(".";A1;CHERCHE(".";A1)+1));ESTERREUR(CHERCHE(".";A1;CHERCHE(".";A1;CHERCHE(".";A1)+1)+1)));A1;SUBSTITUE(A1;".";"+";2)));1)+3)));A1))

Pourrait pas la redecomposer, j'ai oublié de conserver les étapes intermédiaires. A tenter de comprendre avec la fonction "audit de formule. En gros je cherche l'avant dernier ".", et le remplace par un "+". Ensuite je cherche la position de ce "+" et j'extrait le dernier nombre à partir de la position de ce "+". Désolé.
 
Re : Manipulation de chaine de caratére(Position et découpage de chaine)

Bonjour Tatiana, Bonjour Victor, Bonjour JCGL, Bonjour Habitude, Bonjour JBOBO, 🙂

une autre version en formule

Code:
=SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1;".";""))=1;A1;STXT(A1;CHERCHE(" ";A1;CHERCHE("$";SUBSTITUE(A1;".";"$";NBCAR(A1)-NBCAR(SUBSTITUE(A1;".";""))-1)));1000))

Edit : Juste pour ajouter que l'idée est exactement la même que celle de JBOBO 😉
 
Dernière édition:
Re : Manipulation de chaine de caratére(Position et découpage de chaine)

Bonjour

Une autre possibilité, avec une formule matricielle :
Code:
STXT(A1;1+GRANDE.VALEUR(SI(STXT(".  "&A1;LIGNE(INDIRECT("1:"&NBCAR(A1)+1));1)=".";LIGNE(INDIRECT("1:"&NBCAR(A1)+1)));2);100)

Pour autant, je ne suis pas sûr que cela donne la bonne réponse dans tous les cas.

La méthode : On recherche la position de l'avant dernier "." dans ". "&A1 et on affiche tous les caractères pris un peu plus loin sur la droite.

@ plus
 

Pièces jointes

Dernière édition:
Re : Manipulation de chaine de caratére(Position et découpage de chaine)

Bonsoir à tous


Je pensais l'avoir mais j'échoue proche du but
Code:
Function tatiana(r As Range)
tatiana = Replace(IIf(InStr(r.Text, Chr(32)) = 0, r.Text, StrReverse(Split(StrReverse(r.Text))(0) & Split(StrReverse(r.Text))(1))), ".", ",") * 1
End Function

PS: JNP: un petit pattern de derrière les fagots , tu as cela ?
 
Re : Manipulation de chaine de caratére(Position et découpage de chaine)

Bonsoir le fil 🙂,
PS: JNP: un petit pattern de derrière les fagots , tu as cela ?
Petit n'est pas le terme, mais j'ai pas réussi à le simplifier plus 😱...
Mais pour le fun
Code:
Function Tatiana(ATrouver As String) As String
With CreateObject("vbscript.regexp")
    .Global = True
    .Pattern = "((?!\.\d\d )(\d{1,3} \d{3}\.\d{0,2}$))|(\d{1,3}\.\d{0,2}$)"
        If .test(ATrouver) Then
    Tatiana = .Execute(ATrouver)(0)
    End If
End With
End Function
fonctionne sur les cas de figure précités 😛...
Bonne soirée 😎
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…