Exemple : une cellule contient la chaîne "Tension 230 V" Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une formule ? Merci !
buldo
Bonsoir !
Merci, Patrick, mais ça ne marche pas ! J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en D1 (aussi en C3). Réponse d'Excel : #N/A ! Ma version d'Excel est celle d'Office 97.
Bonne soirée
Ceci (pondu par l'ami AV je crois doir fonctionner)
Exemple : une cellule contient la chaîne "Tension 230 V" Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une formule ? Merci !
Bonsoir !
Merci, Patrick, mais ça ne marche pas !
J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en
D1 (aussi en C3). Réponse d'Excel : #N/A !
Ma version d'Excel est celle d'Office 97.
Bonne soirée
Ceci (pondu par l'ami AV je crois doir fonctionner)
Merci, Patrick, mais ça ne marche pas ! J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en D1 (aussi en C3). Réponse d'Excel : #N/A ! Ma version d'Excel est celle d'Office 97.
Bonne soirée
Ceci (pondu par l'ami AV je crois doir fonctionner)
Exemple : une cellule contient la chaîne "Tension 230 V" Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une formule ? Merci !
FxM
Exemple : une cellule contient la chaîne "Tension 230 V" Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une formule ? Merci !
Bonsoir buldo,
Non testé : Alt-F11 | insertion | module Y copier ce qui suit : Public Function nombr(inp) Dim st As String, res As String, a As Integer st = "0123456789": res = "" For a = 1 To Len(inp) If InStr(1, st, Mid(inp, a, 1)) > 0 Then res = res & Mid(inp, a, 1) End If Next a nombr = res * 1 'pour un résultat NOMBRE ' nombr = res 'pour un résultat TEXTE End Function
Usage dans la feuille : Si le teste est en cellule A1 : =nombr(A1)
@+ FxM
Exemple : une cellule contient la chaîne "Tension 230 V"
Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une
formule ?
Merci !
Bonsoir buldo,
Non testé :
Alt-F11 | insertion | module
Y copier ce qui suit :
Public Function nombr(inp)
Dim st As String, res As String, a As Integer
st = "0123456789": res = ""
For a = 1 To Len(inp)
If InStr(1, st, Mid(inp, a, 1)) > 0 Then
res = res & Mid(inp, a, 1)
End If
Next a
nombr = res * 1 'pour un résultat NOMBRE
' nombr = res 'pour un résultat TEXTE
End Function
Usage dans la feuille :
Si le teste est en cellule A1 :
=nombr(A1)
Exemple : une cellule contient la chaîne "Tension 230 V" Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une formule ? Merci !
Bonsoir buldo,
Non testé : Alt-F11 | insertion | module Y copier ce qui suit : Public Function nombr(inp) Dim st As String, res As String, a As Integer st = "0123456789": res = "" For a = 1 To Len(inp) If InStr(1, st, Mid(inp, a, 1)) > 0 Then res = res & Mid(inp, a, 1) End If Next a nombr = res * 1 'pour un résultat NOMBRE ' nombr = res 'pour un résultat TEXTE End Function
Usage dans la feuille : Si le teste est en cellule A1 : =nombr(A1)
@+ FxM
buldo
Bonsoir FxM
Merci pour votre réponse ... Mais ça coince encore ! La raison est que je débute avec Excel, et que je ne connais rien aux macros, ni à Visual Basic !
J'ai d'abord recopié avec soin vos instructions sous forme d'un fichier texte.
Puis : Alt + F11 -> Insertion -> Module
Puis j'ai collé vos instructions dans la fenêtre Classeur1 - Module1 (Code) :
Public Function nombr(inp) Dim st As String, res As String, a As Integer st = "0123456789": res = "" For a = 1 To Len(inp) If InStr(1, st, Mid(inp, a, 1)) > 0 Then res = res & Mid(inp, a, 1) End If Next a nombr = res * 1 'pour un résultat NOMBRE ' nombr = res 'pour un résultat TEXTE End Function
J'ai ensuite placé ma chaîne de caractères en A1 sur ma feuille Excel, puis j'ai écrit =nombr(A1) dans une autre cellule.
Résultat : - au niveau d'Excel, j'obtiens #VALEUR! - dans la fenêtre Visual Basic, lorsque je clique sur Débogage puis Compiler VBAProject, j'obtient le message Erreur de compilation: End If sans bloc If
Exemple : une cellule contient la chaîne "Tension 230 V" Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une formule ? Merci !
Bonsoir buldo,
Non testé : Alt-F11 | insertion | module Y copier ce qui suit : Public Function nombr(inp) Dim st As String, res As String, a As Integer st = "0123456789": res = "" For a = 1 To Len(inp) If InStr(1, st, Mid(inp, a, 1)) > 0 Then res = res & Mid(inp, a, 1) End If Next a nombr = res * 1 'pour un résultat NOMBRE ' nombr = res 'pour un résultat TEXTE End Function
Usage dans la feuille : Si le teste est en cellule A1 : =nombr(A1)
@+ FxM
Bonsoir FxM
Merci pour votre réponse ... Mais ça coince encore !
La raison est que je débute avec Excel, et que je ne connais rien aux
macros, ni à Visual Basic !
J'ai d'abord recopié avec soin vos instructions sous forme d'un fichier texte.
Puis : Alt + F11 -> Insertion -> Module
Puis j'ai collé vos instructions dans la fenêtre Classeur1 - Module1 (Code) :
Public Function nombr(inp)
Dim st As String, res As String, a As Integer
st = "0123456789": res = ""
For a = 1 To Len(inp)
If InStr(1, st, Mid(inp, a, 1)) > 0 Then res = res & Mid(inp, a, 1)
End If
Next a
nombr = res * 1 'pour un résultat NOMBRE
' nombr = res 'pour un résultat TEXTE
End Function
J'ai ensuite placé ma chaîne de caractères en A1 sur ma feuille Excel, puis
j'ai écrit =nombr(A1) dans une autre cellule.
Résultat :
- au niveau d'Excel, j'obtiens #VALEUR!
- dans la fenêtre Visual Basic, lorsque je clique sur Débogage puis Compiler
VBAProject, j'obtient le message Erreur de compilation: End If sans bloc If
Exemple : une cellule contient la chaîne "Tension 230 V"
Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une
formule ?
Merci !
Bonsoir buldo,
Non testé :
Alt-F11 | insertion | module
Y copier ce qui suit :
Public Function nombr(inp)
Dim st As String, res As String, a As Integer
st = "0123456789": res = ""
For a = 1 To Len(inp)
If InStr(1, st, Mid(inp, a, 1)) > 0 Then
res = res & Mid(inp, a, 1)
End If
Next a
nombr = res * 1 'pour un résultat NOMBRE
' nombr = res 'pour un résultat TEXTE
End Function
Usage dans la feuille :
Si le teste est en cellule A1 :
=nombr(A1)
Merci pour votre réponse ... Mais ça coince encore ! La raison est que je débute avec Excel, et que je ne connais rien aux macros, ni à Visual Basic !
J'ai d'abord recopié avec soin vos instructions sous forme d'un fichier texte.
Puis : Alt + F11 -> Insertion -> Module
Puis j'ai collé vos instructions dans la fenêtre Classeur1 - Module1 (Code) :
Public Function nombr(inp) Dim st As String, res As String, a As Integer st = "0123456789": res = "" For a = 1 To Len(inp) If InStr(1, st, Mid(inp, a, 1)) > 0 Then res = res & Mid(inp, a, 1) End If Next a nombr = res * 1 'pour un résultat NOMBRE ' nombr = res 'pour un résultat TEXTE End Function
J'ai ensuite placé ma chaîne de caractères en A1 sur ma feuille Excel, puis j'ai écrit =nombr(A1) dans une autre cellule.
Résultat : - au niveau d'Excel, j'obtiens #VALEUR! - dans la fenêtre Visual Basic, lorsque je clique sur Débogage puis Compiler VBAProject, j'obtient le message Erreur de compilation: End If sans bloc If
Exemple : une cellule contient la chaîne "Tension 230 V" Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une formule ? Merci !
Bonsoir buldo,
Non testé : Alt-F11 | insertion | module Y copier ce qui suit : Public Function nombr(inp) Dim st As String, res As String, a As Integer st = "0123456789": res = "" For a = 1 To Len(inp) If InStr(1, st, Mid(inp, a, 1)) > 0 Then res = res & Mid(inp, a, 1) End If Next a nombr = res * 1 'pour un résultat NOMBRE ' nombr = res 'pour un résultat TEXTE End Function
Usage dans la feuille : Si le teste est en cellule A1 : =nombr(A1)
@+ FxM
Clément Marcotte
Function SorsLeNombre(texte As String) As Double Dim RE As Object, match As Object Dim resultat As String, matches As Object Set RE = CreateObject("vbscript.regexp") RE.ignorecase = True RE.Pattern = "(d+u002Cd+)|(d+.d+)|(d+)" RE.Global = False Set matches = RE.Execute(texte) For Each match In matches If InStr(match.Value, ",") > 0 Then Select Case Application.International(xlDecimalSeparator) Case "," resultat = match.Value Case "." resultat = Replace(match.Value, ".", ",") Case Else End Select ElseIf InStr(match.Value, ".") > 0 Then Select Case Application.International(xlDecimalSeparator) Case "," resultat = Replace(match.Value, ".", ",") Case "." resultat = match.Value Case Else End Select Else resultat = match.Value End If SorsLeNombre = CDbl(resultat) Next Set RE = Nothing Set match = Nothing Set matches = Nothing End Function
"buldo" a écrit dans le message de news:
Exemple : une cellule contient la chaîne "Tension 230 V" Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une formule ? Merci !
Function SorsLeNombre(texte As String) As Double
Dim RE As Object, match As Object
Dim resultat As String, matches As Object
Set RE = CreateObject("vbscript.regexp")
RE.ignorecase = True
RE.Pattern = "(d+u002Cd+)|(d+.d+)|(d+)"
RE.Global = False
Set matches = RE.Execute(texte)
For Each match In matches
If InStr(match.Value, ",") > 0 Then
Select Case Application.International(xlDecimalSeparator)
Case ","
resultat = match.Value
Case "."
resultat = Replace(match.Value, ".", ",")
Case Else
End Select
ElseIf InStr(match.Value, ".") > 0 Then
Select Case Application.International(xlDecimalSeparator)
Case ","
resultat = Replace(match.Value, ".", ",")
Case "."
resultat = match.Value
Case Else
End Select
Else
resultat = match.Value
End If
SorsLeNombre = CDbl(resultat)
Next
Set RE = Nothing
Set match = Nothing
Set matches = Nothing
End Function
"buldo" <buldo@discussions.microsoft.com> a écrit dans le message de news:
B6CEA7C7-EB40-45D8-86F4-73C38141C221@microsoft.com...
Exemple : une cellule contient la chaîne "Tension 230 V"
Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une
formule ?
Merci !
Function SorsLeNombre(texte As String) As Double Dim RE As Object, match As Object Dim resultat As String, matches As Object Set RE = CreateObject("vbscript.regexp") RE.ignorecase = True RE.Pattern = "(d+u002Cd+)|(d+.d+)|(d+)" RE.Global = False Set matches = RE.Execute(texte) For Each match In matches If InStr(match.Value, ",") > 0 Then Select Case Application.International(xlDecimalSeparator) Case "," resultat = match.Value Case "." resultat = Replace(match.Value, ".", ",") Case Else End Select ElseIf InStr(match.Value, ".") > 0 Then Select Case Application.International(xlDecimalSeparator) Case "," resultat = Replace(match.Value, ".", ",") Case "." resultat = match.Value Case Else End Select Else resultat = match.Value End If SorsLeNombre = CDbl(resultat) Next Set RE = Nothing Set match = Nothing Set matches = Nothing End Function
"buldo" a écrit dans le message de news:
Exemple : une cellule contient la chaîne "Tension 230 V" Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une formule ? Merci !
Clément Marcotte
Bonjour,
Dans Excel:
Alt - F11
Clic-droit sur l'icône du classeur dans la fenêtre de gauche en haut Insérer un module. Coller la macro dans le module.
"buldo" a écrit dans le message de news:
Bonsoir FxM
Merci pour votre réponse ... Mais ça coince encore ! La raison est que je débute avec Excel, et que je ne connais rien aux macros, ni à Visual Basic !
J'ai d'abord recopié avec soin vos instructions sous forme d'un fichier texte.
Puis : Alt + F11 -> Insertion -> Module
Puis j'ai collé vos instructions dans la fenêtre Classeur1 - Module1 (Code) :
Public Function nombr(inp) Dim st As String, res As String, a As Integer st = "0123456789": res = "" For a = 1 To Len(inp) If InStr(1, st, Mid(inp, a, 1)) > 0 Then res = res & Mid(inp, a, 1) End If Next a nombr = res * 1 'pour un résultat NOMBRE ' nombr = res 'pour un résultat TEXTE End Function
J'ai ensuite placé ma chaîne de caractères en A1 sur ma feuille Excel, puis j'ai écrit =nombr(A1) dans une autre cellule.
Résultat : - au niveau d'Excel, j'obtiens #VALEUR! - dans la fenêtre Visual Basic, lorsque je clique sur Débogage puis Compiler VBAProject, j'obtient le message Erreur de compilation: End If sans bloc If
Exemple : une cellule contient la chaîne "Tension 230 V" Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une formule ? Merci !
Bonsoir buldo,
Non testé : Alt-F11 | insertion | module Y copier ce qui suit : Public Function nombr(inp) Dim st As String, res As String, a As Integer st = "0123456789": res = "" For a = 1 To Len(inp) If InStr(1, st, Mid(inp, a, 1)) > 0 Then res = res & Mid(inp, a, 1) End If Next a nombr = res * 1 'pour un résultat NOMBRE ' nombr = res 'pour un résultat TEXTE End Function
Usage dans la feuille : Si le teste est en cellule A1 : =nombr(A1)
@+ FxM
Bonjour,
Dans Excel:
Alt - F11
Clic-droit sur l'icône du classeur dans la fenêtre de gauche en haut
Insérer un module.
Coller la macro dans le module.
"buldo" <buldo@discussions.microsoft.com> a écrit dans le message de news:
B8902AC2-715E-4F91-AB17-CED72700C4D2@microsoft.com...
Bonsoir FxM
Merci pour votre réponse ... Mais ça coince encore !
La raison est que je débute avec Excel, et que je ne connais rien aux
macros, ni à Visual Basic !
J'ai d'abord recopié avec soin vos instructions sous forme d'un fichier
texte.
Puis : Alt + F11 -> Insertion -> Module
Puis j'ai collé vos instructions dans la fenêtre Classeur1 - Module1
(Code) :
Public Function nombr(inp)
Dim st As String, res As String, a As Integer
st = "0123456789": res = ""
For a = 1 To Len(inp)
If InStr(1, st, Mid(inp, a, 1)) > 0 Then res = res & Mid(inp, a, 1)
End If
Next a
nombr = res * 1 'pour un résultat NOMBRE
' nombr = res 'pour un résultat TEXTE
End Function
J'ai ensuite placé ma chaîne de caractères en A1 sur ma feuille Excel,
puis
j'ai écrit =nombr(A1) dans une autre cellule.
Résultat :
- au niveau d'Excel, j'obtiens #VALEUR!
- dans la fenêtre Visual Basic, lorsque je clique sur Débogage puis
Compiler
VBAProject, j'obtient le message Erreur de compilation: End If sans bloc
If
Exemple : une cellule contient la chaîne "Tension 230 V"
Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans
une
formule ?
Merci !
Bonsoir buldo,
Non testé :
Alt-F11 | insertion | module
Y copier ce qui suit :
Public Function nombr(inp)
Dim st As String, res As String, a As Integer
st = "0123456789": res = ""
For a = 1 To Len(inp)
If InStr(1, st, Mid(inp, a, 1)) > 0 Then
res = res & Mid(inp, a, 1)
End If
Next a
nombr = res * 1 'pour un résultat NOMBRE
' nombr = res 'pour un résultat TEXTE
End Function
Usage dans la feuille :
Si le teste est en cellule A1 :
=nombr(A1)
Clic-droit sur l'icône du classeur dans la fenêtre de gauche en haut Insérer un module. Coller la macro dans le module.
"buldo" a écrit dans le message de news:
Bonsoir FxM
Merci pour votre réponse ... Mais ça coince encore ! La raison est que je débute avec Excel, et que je ne connais rien aux macros, ni à Visual Basic !
J'ai d'abord recopié avec soin vos instructions sous forme d'un fichier texte.
Puis : Alt + F11 -> Insertion -> Module
Puis j'ai collé vos instructions dans la fenêtre Classeur1 - Module1 (Code) :
Public Function nombr(inp) Dim st As String, res As String, a As Integer st = "0123456789": res = "" For a = 1 To Len(inp) If InStr(1, st, Mid(inp, a, 1)) > 0 Then res = res & Mid(inp, a, 1) End If Next a nombr = res * 1 'pour un résultat NOMBRE ' nombr = res 'pour un résultat TEXTE End Function
J'ai ensuite placé ma chaîne de caractères en A1 sur ma feuille Excel, puis j'ai écrit =nombr(A1) dans une autre cellule.
Résultat : - au niveau d'Excel, j'obtiens #VALEUR! - dans la fenêtre Visual Basic, lorsque je clique sur Débogage puis Compiler VBAProject, j'obtient le message Erreur de compilation: End If sans bloc If
Exemple : une cellule contient la chaîne "Tension 230 V" Comment extraire le chiffre 230 de cette chaîne, pour l'utiliser dans une formule ? Merci !
Bonsoir buldo,
Non testé : Alt-F11 | insertion | module Y copier ce qui suit : Public Function nombr(inp) Dim st As String, res As String, a As Integer st = "0123456789": res = "" For a = 1 To Len(inp) If InStr(1, st, Mid(inp, a, 1)) > 0 Then res = res & Mid(inp, a, 1) End If Next a nombr = res * 1 'pour un résultat NOMBRE ' nombr = res 'pour un résultat TEXTE End Function
Usage dans la feuille : Si le teste est en cellule A1 : =nombr(A1)
@+ FxM
AV
| Merci, Patrick, mais ça ne marche pas ! | J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en | D1 (aussi en C3). Réponse d'Excel : #N/A !
C'est une formule matricielle --> donc il faut valider par Ctrl+maj+entrée
AV
| Merci, Patrick, mais ça ne marche pas !
| J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en
| D1 (aussi en C3). Réponse d'Excel : #N/A !
C'est une formule matricielle --> donc il faut valider par Ctrl+maj+entrée
| Merci, Patrick, mais ça ne marche pas ! | J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en | D1 (aussi en C3). Réponse d'Excel : #N/A !
C'est une formule matricielle --> donc il faut valider par Ctrl+maj+entrée
AV
buldo
Bonsoir !
OK, AV ! Maintenant, ça marche ! Mais j'ai oublié de préciser que mon nombre peut être décimal. Or votre formule donne un résultat entier. Comment modifier la formule pour qu'un nombre avec, disons, 2 chiffres après la virgule, soit extrait tel quel de la chaîne ?
Merci d'avance, cordialement.
buldo
| Merci, Patrick, mais ça ne marche pas ! | J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en | D1 (aussi en C3). Réponse d'Excel : #N/A !
C'est une formule matricielle --> donc il faut valider par Ctrl+maj+entrée
AV
Bonsoir !
OK, AV ! Maintenant, ça marche !
Mais j'ai oublié de préciser que mon nombre peut être décimal. Or votre
formule donne un résultat entier.
Comment modifier la formule pour qu'un nombre avec, disons, 2 chiffres après
la virgule, soit extrait tel quel de la chaîne ?
Merci d'avance, cordialement.
buldo
| Merci, Patrick, mais ça ne marche pas !
| J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en
| D1 (aussi en C3). Réponse d'Excel : #N/A !
C'est une formule matricielle --> donc il faut valider par Ctrl+maj+entrée
OK, AV ! Maintenant, ça marche ! Mais j'ai oublié de préciser que mon nombre peut être décimal. Or votre formule donne un résultat entier. Comment modifier la formule pour qu'un nombre avec, disons, 2 chiffres après la virgule, soit extrait tel quel de la chaîne ?
Merci d'avance, cordialement.
buldo
| Merci, Patrick, mais ça ne marche pas ! | J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en | D1 (aussi en C3). Réponse d'Excel : #N/A !
C'est une formule matricielle --> donc il faut valider par Ctrl+maj+entrée
AV
AV
| Mais j'ai oublié de préciser que mon nombre peut être décimal. Or votre | formule donne un résultat entier.
Toujours une matricielle =1*STXT(A1;MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))));MAX(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1))))-MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))))+1)
Si le séparateur décimal présent dans la chaîne est différent de celui système, il faudra rajouter des SUBSTITUE Relance au besoin AV
| Comment modifier la formule pour qu'un nombre avec, disons, 2 chiffres après | la virgule, soit extrait tel quel de la chaîne ? | | Merci d'avance, cordialement. | | buldo | | | | > | Merci, Patrick, mais ça ne marche pas ! | > | J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en | > | D1 (aussi en C3). Réponse d'Excel : #N/A ! | > | > C'est une formule matricielle --> donc il faut valider par Ctrl+maj+entrée | > | > AV | > | > | >
| Mais j'ai oublié de préciser que mon nombre peut être décimal. Or votre
| formule donne un résultat entier.
Toujours une matricielle
=1*STXT(A1;MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))));MAX(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1))))-MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))))+1)
Si le séparateur décimal présent dans la chaîne est différent de celui système,
il faudra rajouter des SUBSTITUE
Relance au besoin
AV
| Comment modifier la formule pour qu'un nombre avec, disons, 2 chiffres après
| la virgule, soit extrait tel quel de la chaîne ?
|
| Merci d'avance, cordialement.
|
| buldo
|
|
|
| > | Merci, Patrick, mais ça ne marche pas !
| > | J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule
en
| > | D1 (aussi en C3). Réponse d'Excel : #N/A !
| >
| > C'est une formule matricielle --> donc il faut valider par Ctrl+maj+entrée
| >
| > AV
| >
| >
| >
| Mais j'ai oublié de préciser que mon nombre peut être décimal. Or votre | formule donne un résultat entier.
Toujours une matricielle =1*STXT(A1;MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))));MAX(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1))))-MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))))+1)
Si le séparateur décimal présent dans la chaîne est différent de celui système, il faudra rajouter des SUBSTITUE Relance au besoin AV
| Comment modifier la formule pour qu'un nombre avec, disons, 2 chiffres après | la virgule, soit extrait tel quel de la chaîne ? | | Merci d'avance, cordialement. | | buldo | | | | > | Merci, Patrick, mais ça ne marche pas ! | > | J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en | > | D1 (aussi en C3). Réponse d'Excel : #N/A ! | > | > C'est une formule matricielle --> donc il faut valider par Ctrl+maj+entrée | > | > AV | > | > | >
buldo
Merci, AV !
Super super super !
Cordialement
buldo
| Mais j'ai oublié de préciser que mon nombre peut être décimal. Or votre | formule donne un résultat entier.
Toujours une matricielle =1*STXT(A1;MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))));MAX(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1))))-MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))))+1)
Si le séparateur décimal présent dans la chaîne est différent de celui système, il faudra rajouter des SUBSTITUE Relance au besoin AV
| Comment modifier la formule pour qu'un nombre avec, disons, 2 chiffres après | la virgule, soit extrait tel quel de la chaîne ? | | Merci d'avance, cordialement. | | buldo | | | | > | Merci, Patrick, mais ça ne marche pas ! | > | J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en | > | D1 (aussi en C3). Réponse d'Excel : #N/A ! | > | > C'est une formule matricielle --> donc il faut valider par Ctrl+maj+entrée | > | > AV | > | > | >
Merci, AV !
Super super super !
Cordialement
buldo
| Mais j'ai oublié de préciser que mon nombre peut être décimal. Or votre
| formule donne un résultat entier.
Toujours une matricielle
=1*STXT(A1;MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))));MAX(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1))))-MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))))+1)
Si le séparateur décimal présent dans la chaîne est différent de celui système,
il faudra rajouter des SUBSTITUE
Relance au besoin
AV
| Comment modifier la formule pour qu'un nombre avec, disons, 2 chiffres après
| la virgule, soit extrait tel quel de la chaîne ?
|
| Merci d'avance, cordialement.
|
| buldo
|
|
|
| > | Merci, Patrick, mais ça ne marche pas !
| > | J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule
en
| > | D1 (aussi en C3). Réponse d'Excel : #N/A !
| >
| > C'est une formule matricielle --> donc il faut valider par Ctrl+maj+entrée
| >
| > AV
| >
| >
| >
| Mais j'ai oublié de préciser que mon nombre peut être décimal. Or votre | formule donne un résultat entier.
Toujours une matricielle =1*STXT(A1;MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))));MAX(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1))))-MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))))+1)
Si le séparateur décimal présent dans la chaîne est différent de celui système, il faudra rajouter des SUBSTITUE Relance au besoin AV
| Comment modifier la formule pour qu'un nombre avec, disons, 2 chiffres après | la virgule, soit extrait tel quel de la chaîne ? | | Merci d'avance, cordialement. | | buldo | | | | > | Merci, Patrick, mais ça ne marche pas ! | > | J'ai écrit mon texte "Tension 230 V" en A1, puis j'ai recopié la formule en | > | D1 (aussi en C3). Réponse d'Excel : #N/A ! | > | > C'est une formule matricielle --> donc il faut valider par Ctrl+maj+entrée | > | > AV | > | > | >