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!
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
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)
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 ?
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