Extraire les caractères numériques en VB
Résolu
Vince
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à n'extraire que les caractères numériques d'une chaine de caractères.
La commande :
if instr(x,"3060") <> 0 then
ExtFunction = Mid(x, InStr(x,"3060") , 17)
end if
me donne bien 17 caractères mais je souhaite supprimer les espaces et les lettres et n'obtenir que les chiffres.
Merci de votre aide
Je cherche à n'extraire que les caractères numériques d'une chaine de caractères.
La commande :
if instr(x,"3060") <> 0 then
ExtFunction = Mid(x, InStr(x,"3060") , 17)
end if
me donne bien 17 caractères mais je souhaite supprimer les espaces et les lettres et n'obtenir que les chiffres.
Merci de votre aide
A voir également:
- Extraire les caractères numériques en VB
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Vb - Télécharger - Langages
6 réponses
Bonjour,
Essaye avec..
Pour autant que le nombre à rechercher soit toujours de 4 chiffres.
Tu dis
Essaye avec..
ExtFunction = Mid(x, InStr(x,"3060") , 4)
Pour autant que le nombre à rechercher soit toujours de 4 chiffres.
Tu dis
bonjour
je ne sais pas si j'ai bien compris, mais deux fonctions qui suppriment les caractères non numériques d'une chaine
bonne suite
je ne sais pas si j'ai bien compris, mais deux fonctions qui suppriment les caractères non numériques d'une chaine
Public Function X_chiffres1(x As String) As String If x = "" Then X_chiffres1 = "" Else If IsNumeric(Left(x, 1)) Then X_chiffres1 = Left(x, 1) & X_chiffres1(Right(x, Len(x) - 1)) Else X_chiffres1 = X_chiffres1(Right(x, Len(x) - 1)) End If End If End Function Public Function X_chiffres2(x As String) As String Dim s, k As Long s = "" For k = 1 To Len(x) If IsNumeric(Mid(x, k, 1)) Then s = s & Mid(x, k, 1) End If Next k X_chiffres2 = s End Function
bonne suite
Re,
Effectivement, pourquoi extraire un nombre que l'ont connaît déjà ?
Y faudrait un point de repaire comme par exemple
Une idée !!
Ce n'est qu'une idée :DD
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Effectivement, pourquoi extraire un nombre que l'ont connaît déjà ?
Y faudrait un point de repaire comme par exemple
x = "Vendu= 3060 ; retour= 623 "
Une idée !!
Sub Test() Dim x As String, d x = "Vendu= 3060 ; Retour= 623 " d = VdRe(x, 0) 'Avec 0 = 3060 : avec 1 = 623 End Sub Public Function VdRe(x As String, Optional Mode As Integer) As Double Dim S As String, i As Integer, e As Integer S = IIf(Mode = 0, "Vendu= ", "Retour=") i = InStr(x, S) If i > 0 Then S = Trim(Mid(x, i + 7)) For e = 1 To Len(S) If Not IsNumeric(Mid(S, e, 1)) Then Exit For Next e VdRe = Val(IIf(e > Len(S), S, Left(S, e - 1))) End If End Function
Ce n'est qu'une idée :DD
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Bonjour et merci à ceux qui m'ont apporté des réponses.
Ma description était peut être floue.... je cherchais à extraire 17 caractères numériques commençant par 3060.
Visiblement la solution est :
Function ExtFunction (x)
ExtFunction= "0"
if instr(x,"3060") <> 0 then
x = Replace(x," ","")
end if
if instr(x,"3060") <> 0 then
ExtFunction = Mid(x, InStr(x,"3060") , 17)
end if
End Function
MErci encore à Tous
Ma description était peut être floue.... je cherchais à extraire 17 caractères numériques commençant par 3060.
Visiblement la solution est :
Function ExtFunction (x)
ExtFunction= "0"
if instr(x,"3060") <> 0 then
x = Replace(x," ","")
end if
if instr(x,"3060") <> 0 then
ExtFunction = Mid(x, InStr(x,"3060") , 17)
end if
End Function
MErci encore à Tous
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question