Extraire uniquement les mots, contenus dans une cellule

gexelpas -  
 gexelpas -
Bonjour,

Dans une cellule, j'ai des mots avec des espaces entre chacun, mais également des chiffres

Ce que je souhaite, c'est extraire uniquement les mots, en respectant les espaces & les placer dans la cellule voisine.

2 exemples:

MAISON PLEIN PIED - 800 m2: Résultat souhaité: MAISON PLEIN PIED

200 APPARTEMENT EN RDC-BRIGNAIS: Résultat souhaité: APPARTEMENT EN RDC-BRIGNAIS

(attention, le - dans les 2 exemples est présent mais dans le 1er cas il y'a un espace avant et après, alors que dans le 2ème cas, il n'est pas encadré par un espace).

Je me casse les dents sur les formules à mettre en place, si cela est possible...?
Si pas possible avec des formules, peut être avec codes VBA ?

Merci d'avance !

1 réponse

  1. redaiwa Messages postés 370 Statut Membre 119
     
    Salam gexelpas :)

    Essaye ce code pour voir :

    Public Sub Extraire()
    With Sheets("Feuil1")
    ligne = 1
    While .Cells(ligne, 1) <> ""
    texte = .Cells(ligne, 1)
    resultat = ""
    For i = 1 To Len(texte)
    c = Mid(texte, i, 1)
    Select Case c
    Case "A" To "Z", " ", "-": resultat = resultat & c
    End Select
    Next i

    ''' supprimer les caractères non alphabétiques au début de résultat
    While Left(resultat, 1) = " " Or Left(resultat, 1) = "-"
    resultat = Right(resultat, Len(resultat) - 1)
    Wend

    ''' supprimer les caractères non alphabétiques en fin de résultat
    While Right(resultat, 1) = " " Or Right(resultat, 1) = "-"
    resultat = Left(resultat, Len(resultat) - 1)
    Wend

    .Cells(ligne, 2) = resultat
    ligne = ligne + 1
    Wend

    End With
    End Sub

    En supposant que les textes sont en colonne A et les résultats en colonne B.

    Fais-nous part du résultat.
    0
    1. gexelpas
       
      Bonjour redaiwa,

      Tout d'abord, merci pour ta réponse.
      Je vais l'essayer ce weekend, car on m'a, "monopolisé" sur un autre sujet au boulot.
      Je te tiendrai au courant.
      D'ici là, encore une fois: Merci !!!
      0