Fonction IsNumeric
Fermé
Waner14
Messages postés
1
Date d'inscription
dimanche 2 octobre 2016
Statut
Membre
Dernière intervention
2 octobre 2016
-
2 oct. 2016 à 19:25
Utilisateur anonyme - 3 oct. 2016 à 13:40
Utilisateur anonyme - 3 oct. 2016 à 13:40
A voir également:
- Fonction IsNumeric
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - Guide
- Excel renvoyer la valeur d'une cellule en fonction d'une autre - Forum Logiciels
4 réponses
Utilisateur anonyme
2 oct. 2016 à 20:32
2 oct. 2016 à 20:32
Bonjour,
quel VB?
quel VB?
- VBS
- VBA
- Word
- Excel
- Access
- Powerpoint
- Autre
- VB6
- VB.Net
- Winform
- WPF
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
3 oct. 2016 à 11:47
3 oct. 2016 à 11:47
Bonjour tout le monde
une regexp le lundi matin, dur,dur....
pour le fun (?)
mais on doit trouver sans utiliser regexp
une regexp le lundi matin, dur,dur....
pour le fun (?)
Sub ccm()
Dim RD
RD = Right(Range("B2"), 3)
MsgBox extrait_chiffres(RD)
End Sub
'---------------------------------------------------------------------------
Function extrait_chiffres(ByRef texto) As Integer
Dim reg As Object
Dim extraction As Object
Dim digit
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.Pattern = "(\d?\d?\d)"
Set extraction = reg.Execute(texto)
For Each digit In extraction
extrait_chiffres = extrait_chiffres & (digit.Value)
If IsNumeric(extrait_chiffres) Then Nbre = Nbre + 1
Next digit
If Nbre = 0 Then
MsgBox "aucun chiffre dans les 3 derniers caractères"
End
End If
Set extraction = Nothing
Set reg = Nothing
End Function
mais on doit trouver sans utiliser regexp
Salut,
Tu te compliques la vie.
La demande est de vérifier que les 3 derniers caractères sont des chiffres, donc pas besoin de repasser par un IsNumeric (qui n'existe pas en .net)
Le pattern est un truc comme ça (de tête pas vérifié) ".+\d{3}$" qui signifie n'importe quoi plein de fois, suivi de 3 chiffres et fin de texte.
Tu te compliques la vie.
La demande est de vérifier que les 3 derniers caractères sont des chiffres, donc pas besoin de repasser par un IsNumeric (qui n'existe pas en .net)
Le pattern est un truc comme ça (de tête pas vérifié) ".+\d{3}$" qui signifie n'importe quoi plein de fois, suivi de 3 chiffres et fin de texte.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 3/10/2016 à 12:57
Modifié par michel_m le 3/10/2016 à 12:57
Je m'disais aussi !
sans regexp et + compréhensible à mon avis
a adapter (msgbox pour la démo)
à transformer en nombre (rep*1)car "rep" est du texte
Michel
sans regexp et + compréhensible à mon avis
a adapter (msgbox pour la démo)
Option Explicit
'-------------------------------
Sub ccm()
Dim Fin, cptr As Byte, xxx, rep
Fin = StrReverse((Right(Range("B2"), 3)))
For cptr = 1 To 3
xxx = Mid(Fin, cptr, 1)
If IsNumeric(xxx) Then
rep = rep & xxx
Else
Exit For
End If
Next
If rep = "" Then
MsgBox "aucun nombre"
Else
MsgBox StrReverse(rep)
End If
End Sub
à transformer en nombre (rep*1)car "rep" est du texte
Michel
Utilisateur anonyme
Modifié par Whismeril le 3/10/2016 à 13:40
Modifié par Whismeril le 3/10/2016 à 13:40
Je viens de tester le pattern, j'y ai ajouté un groupement (les parenthèses) pour extraire les chiffres bien que Warmer14 ne l'ai pas demandé.
Comme il n'a toujours pas dit quel VB il utilise, je ne propose pas d'implémentation (de toute façon je ne sais faire qu'en .Net;) )
On voit sur la capture d'un site de teste en ligne que la variable est validée (Matched String) et que les 3 chiffres sont extraits dans $1
PS si je mets datdatz1234 en entrée ça match aussi est 234 est extrait.
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Comme il n'a toujours pas dit quel VB il utilise, je ne propose pas d'implémentation (de toute façon je ne sais faire qu'en .Net;) )
On voit sur la capture d'un site de teste en ligne que la variable est validée (Matched String) et que les 3 chiffres sont extraits dans $1
PS si je mets datdatz1234 en entrée ça match aussi est 234 est extrait.
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
2 oct. 2016 à 20:33
2 oct. 2016 à 20:54
Vba vb6 vbs vb.net.. on peut utiliser les regex dans tous ces langages. :-)
2 oct. 2016 à 20:56
Oui je sais, mais y'a des réfractaires qui disent que like est un peu plus simple....
2 oct. 2016 à 21:12