enlever caracteres alphabetique d'une chaine alphanumerique

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nsqualli

XLDnaute Junior
Bonjour a tous,

SVP je cherche une fonction qui m'enlèvera les caracteres alphabetique d'une chaine alphanumérique.
par exemple je donne la chaine "A123B2" et ça me retourne "1232".

Merci d'avance.
 
Re : enlever caracteres alphabetique d'une chaine alphanumerique

bonjour à tous

comme j'étais en train de le faire ...
 

Pièces jointes

Dernière édition:
Re : enlever caracteres alphabetique d'une chaine alphanumerique

Re

Une solution avec RegExp

avec une fonction VBA personnalisée

Code:
Function numseul(r As Range)
Dim chiffres As String
Dim oReg As Object
Set oReg = CreateObject("vbscript.regexp")
With oReg
.Global = True
.IgnoreCase = True
.Pattern = "\D"
chiffres = .Replace(r.Text, "")
End With
numseul = Val(chiffres)
End Function

A+
 
Dernière édition:
Re : enlever caracteres alphabetique d'une chaine alphanumerique

Bonjour,

http://boisgontierjacques.free.fr/fichiers/fonctionsperso/Fonction_NumeriqueChaine2.xls

Code:
Function NumChaine(chaine)
  Application.Volatile
  TempChaine = Trim(Application.Substitute(chaine, ",", "."))
  Temp = ""
  For i = 1 To Len(TempChaine)
    c = Mid(TempChaine, i, 1)
    If c >= "0" And c <= "9" Or c = "." Then Temp = Temp & c
  Next i
  NumChaine = Val(Temp)
End Function

JB
 
Dernière édition:
Re : enlever caracteres alphabetique d'une chaine alphanumerique

Merci pour vos reponses, mais j'ai fais la macro suivante, quand j'ai pas trouvé de fonction qui fait ce traitement:
Code:
Function RetournerNumRef(Reference1)
Dim i As Byte, Nb As Byte
Dim Cible As String, Resultat As String
Dim Nombre As Double

Cible = Reference1

For i = 1 To Len(Cible)
    If IsNumeric(Mid(Cible, i, 1)) Then
        Nombre = Val(Mid(Cible, i, Len(Cible) - i + 1))
        Nb = Nb + 1
        Resultat = Resultat & Nombre
        i = i + Len(Str(Nombre)) - 1
    End If
Next

RetournerNumRef = Resultat

End Function

bon courage
 
Re : enlever caracteres alphabetique d'une chaine alphanumerique

Bonjour à tout le forum,


Je me sert de ce post car il correspond presque à mon besoin.

Je souhaiterais savoir si il est possible de detecter un caractère "lettre" dans une chaine aplhanumerique.

par Ex : 00xAA8

Comment detecter le caractère "x" dans une cellule d'une plage ???

Si quelqu'un a une idée, d'avance merci pour vos réponses.
 
Re : enlever caracteres alphabetique d'une chaine alphanumerique

Bonjour à tous
Xion, regardez ce post. En changeant :
Code:
  If IsNumeric(Mid(Cell.Offset(0, -1), k, 1)) Then Val = k: Exit For
Par
Code:
  If Not IsNumeric(Mid(Cell.Offset(0, -1), k, 1)) Then Val = k
Vous devriez trouver l'emplacement des lettres à l'intérieur d'une chaine.
Bon courage
Cordialement
 
Re : enlever caracteres alphabetique d'une chaine alphanumerique

Bonsoir Efgé,


Tout d'abord merci de ta réponse, mais je ne parviens pas à utiliser le code du post que tu as mentionné (je ne le comprend pas vraiment à vrai dire...)

Je te mets en pièce jointe un fichier exemple de mon code et de se que je souhaites réliser avec.

J'ai une feuille de noms qui se répètent et je souhaite faire un calcul (dont les résultats sont affichés sur une autre feuille) MIN, MAX et AVERAGE pour chaque nom.

Mon problème vient des caractères alphanumérique qui me font planter mon code...

Merci pour ton aide.
 

Pièces jointes

Re : enlever caracteres alphabetique d'une chaine alphanumerique

Bonsoir Xion,
Si j"ai bien compris, il faut utiliser la fonction ESTNUM. Pour le MAX (par exemple):
Code:
=SI(ESTNUM(LC(-2):L(23)C(-2));MAX(LC(-2):L(23)C(-2));"")
Après pour le tableau d'arrivé, je pense qu'il faut utiliser un SOMMEPROD, mais je ne le maitrise pas.
Si un formuliste passe par là....
Cordialement
 
Re : enlever caracteres alphabetique d'une chaine alphanumerique

Bonsoir Efgé, Jocelyn,


Je ne pourrais tester la solution proposée par Efgé que demain, mais je parviens avec mon code à trouver le min, max et l'average pour chaque nom de la liste sauf pour ceux ayant des caracteres "lettres" au milieu de chiffres (ce qui est normal).

Ce que je souhaites, c'est de pouvoir scanner le contenu de chaque cellule d'une plage et d'identifier si il y a des lettres dans ce contenu.

Je pourrais ensuite mettre une condition qui ne fera pas de calcul sur cette valeur (donc aucun plantage de code en assayant de faire la moyenne sur "AAxx3F") et de passer à la cellule suivante et de scanner jusqu'au bout de la plage.

Je ne sais pas si cela est faisable par code VBA...

En tout cas merci pour votre aide et votre réactivité !!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Résolu(e)
Microsoft 365 transposer
Réponses
6
Affichages
223
Réponses
16
Affichages
383
Retour