Extraction lettres avec une quantité aléatoire

thomasamws

XLDnaute Nouveau
Bonjour à tous,

Ma navigation sur le forum ne m'a pas apporté de réponse, je me demande donc s'il est possible de faire ce que je souhaite.

J'ai une série de code mélangeant lettres et chiffres. Je cherche à isoler les lettres. Le souci est que le nombre de lettre varie, tout comme le nombre de chiffre...

En gros, je peux avoir :

PFFIAG6527238
PFA 23523 (et oui, des espaces en plus)
PFGRSOER2356

Si quelqu'un connaît une solution, ce sera un grand plaisir.

Merci et bon week-end
 

Dranreb

XLDnaute Barbatruc
Re : Extraction lettres avec une quantité aléatoire

Bonjour
Cette fonction perso fait l'affaire:
VB:
Function Lettres(ByVal Z As String) As String
Dim P As Long
Lettres = ""
For P = 1 To Len(Z)
   If UCase$(Mid$(Z, P, 1)) <> LCase$(Mid$(Z, P, 1)) Then Lettres = Lettres & Mid$(Z, P, 1)
   Next P
End Function
À+
 
Dernière édition:

Creepy

XLDnaute Accro
Re : Extraction lettres avec une quantité aléatoire

Bonjour,

Il y avait longtemps que je n'avais pas fait un post.

je vois que les réponses arrivent toujours aussi vites !! :eek:

Bref j'ai fait un fonction qui peut être appelée comme une formule, alors je poste

@+

Creepy
 

Pièces jointes

  • Test.xls
    20 KB · Affichages: 54
  • Test.xls
    20 KB · Affichages: 57
  • Test.xls
    20 KB · Affichages: 60

Robert

XLDnaute Barbatruc
Repose en paix
Re : Extraction lettres avec une quantité aléatoire

Bonjour le fil, bonjour le forum,

Une proposition VBA :
Code:
Sub Macro1()
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim x As Integer 'déclare la variable x (incrément de caractère)
Dim l As String 'déclare la variable l (Lettres)
 
Set pl = Range("A1:A" & Cells(Application.Rows.Count, 1).End(xlUp).Row) 'à adapter
For Each cel In taplage 'boucle 1 : sur toutes les cellules éditées cel de la plage pl
    For x = 1 To Len(cel) 'boucle 2 : sur tous les caractères de la cellule cel
        'si le caractère né st pas numérique, définit la variable l
        If IsNumeric(Mid(cel.Value, x, 1)) = False Then l = l & Mid(cel.Value, x, 1)
    Next x 'prochain caractères de la boucle 2
    cel.Offset(0, 1).Value = l 'place dans la cellule à coté de cel l'extraction des lettres uniquement (à adapter)
Next cel 'prochaine cellule de la boucle 1
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T