Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment tronquer une chaîne de caractères

6 réponses
Avatar
Sophie
Bonjour,=20

Dans certaines cellules d'un tableau l'utilisateur=20
inscrit une valeur du type Caract=E8reNombre (par ex. S8).=20
J'ai besoin de r=E9cup=E9rer dans une macro que la valeur=20
num=E9rique entr=E9e (8 dans l'exemple ci-dessus).=20

Comment faire ? J'ai essay=E9 Val(expression) mais =E7a me=20
renvoie 0 avec l'exemple ci-dessus.=20

Merci pour votre aide - Sophie

6 réponses

Avatar
Ellimac
Bonjour,

D'un illustre contributeur :
=STXT(A1;EQUIV(VRAI;(ESTNUM(STXT(A1;LIGNE(INDIRECT
("1:"&NBCAR(A1)));1)*1));0);99)

Camille
-----Message d'origine-----
Bonjour,

Dans certaines cellules d'un tableau l'utilisateur
inscrit une valeur du type CaractèreNombre (par ex. S8).
J'ai besoin de récupérer dans une macro que la valeur
numérique entrée (8 dans l'exemple ci-dessus).

Comment faire ? J'ai essayé Val(expression) mais ça me
renvoie 0 avec l'exemple ci-dessus.

Merci pour votre aide - Sophie
.



Avatar
ChrisV
Bonjour Sophie,

Si la valeur numérique se situe, comme sur ton exemple, en fin de chaîne...
(sur la plage sélectionnée)

Sub zaza()
Dim i As Integer, c As Range
For Each c In Selection
nb = ""
For i = 1 To Len(c)
If IsNumeric(Mid(c, i, 1)) Then _
nb = 1 * (nb & Mid(c, i))
Next i
MsgBox nb
Next c
End Sub


ChrisV


"Sophie" a écrit dans le message de
news: 13f3401c3f7b6$9bce6850$
Bonjour,

Dans certaines cellules d'un tableau l'utilisateur
inscrit une valeur du type CaractèreNombre (par ex. S8).
J'ai besoin de récupérer dans une macro que la valeur
numérique entrée (8 dans l'exemple ci-dessus).

Comment faire ? J'ai essayé Val(expression) mais ça me
renvoie 0 avec l'exemple ci-dessus.

Merci pour votre aide - Sophie
Avatar
Sophie
Re

Plutôt hermétique tout ça ...

Y'a rien de plus simple ou alors un petit mot
d'explication ?

Sophie

-----Message d'origine-----
Bonjour,

D'un illustre contributeur :
=STXT(A1;EQUIV(VRAI;(ESTNUM(STXT(A1;LIGNE(INDIRECT
("1:"&NBCAR(A1)));1)*1));0);99)

Camille
-----Message d'origine-----
Bonjour,

Dans certaines cellules d'un tableau l'utilisateur
inscrit une valeur du type CaractèreNombre (par ex.
S8).


J'ai besoin de récupérer dans une macro que la valeur
numérique entrée (8 dans l'exemple ci-dessus).

Comment faire ? J'ai essayé Val(expression) mais ça me
renvoie 0 avec l'exemple ci-dessus.

Merci pour votre aide - Sophie
.

.





Avatar
Sophie
Merci pour ces infos ; en fait mon pb est beaucoup plus
simple et je pense qu'avec la fonction Mid je devrais
m'en sortir au bémol près que je viens d'essayer et que
Mid("S8", 2) me renvoie S8 et non 8 comme je le pensais.

Est-ce que cela peut venir du fait que la valeur S8 est
saisie via une ComboBox ?

-----Message d'origine-----
Bonjour Sophie,

Si la valeur numérique se situe, comme sur ton exemple,
en fin de chaîne...

(sur la plage sélectionnée)

Sub zaza()
Dim i As Integer, c As Range
For Each c In Selection
nb = ""
For i = 1 To Len(c)
If IsNumeric(Mid(c, i, 1)) Then _
nb = 1 * (nb & Mid(c, i))
Next i
MsgBox nb
Next c
End Sub


ChrisV


"Sophie" a écrit
dans le message de

news: 13f3401c3f7b6$9bce6850$
Bonjour,

Dans certaines cellules d'un tableau l'utilisateur
inscrit une valeur du type CaractèreNombre (par ex. S8).
J'ai besoin de récupérer dans une macro que la valeur
numérique entrée (8 dans l'exemple ci-dessus).

Comment faire ? J'ai essayé Val(expression) mais ça me
renvoie 0 avec l'exemple ci-dessus.

Merci pour votre aide - Sophie


.



Avatar
Jacky
Bonjour Sophie

Mid("S8", 2) me renvoie S8 et non 8 comme je le pensais



essaie
Mid("S8",2,1)
ou
Right("S8", 1)
ou pour une cellule
Right([A1],1)

Salutations
JJ

"Sophie" a écrit dans le message news:
13fb201c3f7bf$32809e50$
Merci pour ces infos ; en fait mon pb est beaucoup plus
simple et je pense qu'avec la fonction Mid je devrais
m'en sortir au bémol près que je viens d'essayer et que
Mid("S8", 2) me renvoie S8 et non 8 comme je le pensais.

Est-ce que cela peut venir du fait que la valeur S8 est
saisie via une ComboBox ?

-----Message d'origine-----
Bonjour Sophie,

Si la valeur numérique se situe, comme sur ton exemple,
en fin de chaîne...

(sur la plage sélectionnée)

Sub zaza()
Dim i As Integer, c As Range
For Each c In Selection
nb = ""
For i = 1 To Len(c)
If IsNumeric(Mid(c, i, 1)) Then _
nb = 1 * (nb & Mid(c, i))
Next i
MsgBox nb
Next c
End Sub


ChrisV


"Sophie" a écrit
dans le message de

news: 13f3401c3f7b6$9bce6850$
Bonjour,

Dans certaines cellules d'un tableau l'utilisateur
inscrit une valeur du type CaractèreNombre (par ex. S8).
J'ai besoin de récupérer dans une macro que la valeur
numérique entrée (8 dans l'exemple ci-dessus).

Comment faire ? J'ai essayé Val(expression) mais ça me
renvoie 0 avec l'exemple ci-dessus.

Merci pour votre aide - Sophie


.




Avatar
Sophie
OK merci
-----Message d'origine-----
Bonjour Sophie

Mid("S8", 2) me renvoie S8 et non 8 comme je le
pensais




essaie
Mid("S8",2,1)
ou
Right("S8", 1)
ou pour une cellule
Right([A1],1)

Salutations
JJ

"Sophie" a écrit
dans le message news:

13fb201c3f7bf$32809e50$
Merci pour ces infos ; en fait mon pb est beaucoup plus
simple et je pense qu'avec la fonction Mid je devrais
m'en sortir au bémol près que je viens d'essayer et que
Mid("S8", 2) me renvoie S8 et non 8 comme je le pensais.

Est-ce que cela peut venir du fait que la valeur S8 est
saisie via une ComboBox ?

-----Message d'origine-----
Bonjour Sophie,

Si la valeur numérique se situe, comme sur ton exemple,
en fin de chaîne...

(sur la plage sélectionnée)

Sub zaza()
Dim i As Integer, c As Range
For Each c In Selection
nb = ""
For i = 1 To Len(c)
If IsNumeric(Mid(c, i, 1)) Then _
nb = 1 * (nb & Mid(c, i))
Next i
MsgBox nb
Next c
End Sub


ChrisV


"Sophie" a écrit
dans le message de

news: 13f3401c3f7b6$9bce6850$
Bonjour,

Dans certaines cellules d'un tableau l'utilisateur
inscrit une valeur du type CaractèreNombre (par ex. S8).
J'ai besoin de récupérer dans une macro que la valeur
numérique entrée (8 dans l'exemple ci-dessus).

Comment faire ? J'ai essayé Val(expression) mais ça me
renvoie 0 avec l'exemple ci-dessus.

Merci pour votre aide - Sophie


.




.