différencier lettre des caractères

R

Rémi

Guest
bonjour à tous!

Voilà j'aimerais savoir comment distinguer dans une chaine de caractères, les lettres des différents signes d'opérations (+;-;();/;...)

J'ai trouvé sur le forum la fonction IsNumeric qui différencie les chiffres des autres caractères, mais existe t'il un équivalent pour les lettres??

Merci de votre aide!
 

andré

XLDnaute Barbatruc
Salut Remi,

J'aimerais savoir ce que tu entends par 'différencier'.

Est-ce que tes caractères sont seuls dans une cellule, ou bien désires-tu compter le nombres de caractères spéciaux dans une chaîne de caractères, ou bien encore autre chose.

Si les réponses tardent, il me semble que c'est parce que personne ne comprend où tu veux en venir.

Â+
 
R

Rémi

Guest
Bonjour André,

En fait j'ai une chaine de caractères ex:'AB1+AD1', je souhaiterais pouvoir récupérer AB d'une part et AD de l'autre...

En utilisant IsNumeric, j'arrive à récupérer AB+AD seulement je ne sais pas comment dissocier les lettres des signes d'opération, et si celà est possible.

J'espère que comme cela c'est plus clair...

Merci
 
R

Rémi

Guest
Bonjour André,

En fait j'ai une chaine de caractères ex:'AB1+AD1', je souhaiterais pouvoir récupérer AB d'une part et AD de l'autre...

En utilisant IsNumeric, j'arrive à récupérer AB+AD seulement je ne sais pas comment dissocier les lettres des signes d'opération, et si celà est possible.

J'espère que comme cela c'est plus clair...

Merci
 

Pyrof

XLDnaute Occasionnel
Bonjour,


Voici un moyen d'y arriver, il y a surement mieux mais ????

[file name=Classeur11_20051004084105.zip size=7294]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur11_20051004084105.zip[/file]
 

Pièces jointes

  • Classeur11_20051004084105.zip
    7.1 KB · Affichages: 32

Ti_

Nous a quitté
Repose en paix
Voilà une petite fonction qui extrait les différents nombres de ton opération et les renvoie sous forme d'une collection :

Function ExtraitNb(ByVal Op$) As Collection
'Ti - Ce lien n'existe plus
'récupère les nombres d'une opération sous forme d'une collection
Const Operateurs$ = '+-*:/^()'
Dim Col As New Collection, Bcle&, Car$, Nb$
Op = Replace(Op, ' ', '')
For Bcle = 1 To Len(Op)
Car = Mid$(Op, Bcle, 1)
If InStr(1, Operateurs, Car) Then
If Nb <> '' Then Col.Add Nb
Nb = ''
Else
Nb = Nb & Car
End If
Next Bcle
If Nb <> '' Then Col.Add Nb
Set ExtraitNb = Col
End Function

Sub Test()
Dim Op$, ColNombres As Collection

Op = '5.25 * (3 - 6)'
Set ColNombres = ExtraitNb(Op)
End Sub
 

andré

XLDnaute Barbatruc
Salut Remi,

Je vois trois possibilités.

La chaîne de caractères AB1+AD1 en A1

Menu Données / Convertir / Suivant / séparateur : + / Suivant / Terminer.
Glisser la chaîne de caractères de B1 en A2
Recommencer l'opération sur les deux cellules avec 1 comme séparateur.

En A2 la formule : =SUBSTITUE(SUBSTITUE(A1;1;'');'+';' ') te donnera AB AD
Puis sélectionner A2 et touches clavier F2 et F9 afin de faire un collage spécial valeurs.
Enfin Convertir avec l'espace comme séparateur.

Compter manuellement les caractères à extraire
B1 : =GAUCHE(A1;2) te donnera AB
C1 : =STXT(A1;5;2) te donnera AD

Ces trois méthodes sont fastidieuses et à faire cellule par cellule.
Il y a peut-être moyen de trouver une formule qui combine le tout, mais pour cela il faudrait avoir un exemple qui regroupe tous les cas de figure.

Â+
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 424
Membres
103 206
dernier inscrit
diambote