différencier lettre des caractères

  • Initiateur de la discussion Initiateur de la discussion Rémi
  • Date de début Date de début

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 !

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!
 
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.

Â+
 
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
 
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
 
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
 
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.

Â+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour