Bryan a une feuille de calcul qui contient de nombreuses cellules contenant des caractères alphabétiques. Il cherche un moyen de se débarrasser uniquement de ces caractères alphabétiques, peu importe où ils apparaissent dans la cellule. Par exemple, si la cellule contient « ABC123 », Bryan veut se débarrasser de « ABC »

et il ne reste que « 123 ». De même, « A3B2C1 » devrait devenir « 321 »

et « # 45P% » devrait devenir « # 45% ».

La seule façon d’aborder ce problème consiste à utiliser des macros. Si vous souhaitez simplement supprimer les caractères, en place, vous pouvez le faire en sélectionnant les cellules que vous souhaitez affecter, puis en exécutant une macro qui examine chaque cellule et supprime les caractères incriminés. Il existe de nombreuses façons de procéder; la macro suivante est une approche simple.

Sub CleanText1()

Dim rngCell As Range     Dim intChar As Integer     Dim strCheckString As String     Dim strCheckChar As String     Dim intCheckChar As Integer     Dim strClean As String

For Each rngCell In Selection         strCheckString = rngCell.Value         strClean = ""



For intChar = 1 To Len(strCheckString)

strCheckChar = Mid(strCheckString, intChar, 1)

intCheckChar = Asc(strCheckChar)

Select Case intCheckChar                 Case 65 To 90      'upper case chars                     'Do nothing                 Case 97 To 122     'lower case chars                     'Do nothing                 Case 128 To 151    'special language chars                     'Do nothing                 Case 153 To 154    'special language chars                     'Do nothing                 Case 159 To 165    'special language chars                     'Do nothing                 Case Else                     strClean = strClean & strCheckChar             End Select         Next intChar         rngCell.Value = strClean     Next rngCell End Sub

La bonne chose à propos de cette approche pour supprimer les caractères est que vous pouvez facilement vous débarrasser des autres caractères en modifiant simplement ce qui est vérifié (et quelles actions sont entreprises) dans la structure Select Case.

Si vous ne souhaitez pas modifier les cellules d’origine, une bonne approche consiste à créer une fonction définie par l’utilisateur qui renverra une version « propre » d’une chaîne. Ceci peut être réalisé en apportant quelques modifications à la macro précédente.

Function CleanText2(ByVal sRaw As String) As String     Dim intChar As Integer     Dim strCheckString As String     Dim strCheckChar As String     Dim intCheckChar As Integer     Dim strClean As String

Application.Volatile     strClean = ""

For intChar = 1 To Len(sRaw)

strCheckChar = Mid(sRaw, intChar, 1)

intCheckChar = Asc(strCheckChar)

Select Case intCheckChar             Case 65 To 90      'upper case chars                 'Do nothing             Case 97 To 122     'lower case chars                 'Do nothing             Case 128 To 151    'special language chars                 'Do nothing             Case 153 To 154    'special language chars                 'Do nothing             Case 159 To 165    'special language chars                 'Do nothing             Case Else                 strClean = strClean & strCheckChar         End Select     Next intChar     CleanText2 = strClean End Function

Pour utiliser la fonction, vous pouvez mettre une formule telle que la suivante dans une cellule:

=CleanText2(A1)

Le résultat est que la formule renvoie une version «propre» de tout ce qui se trouve dans la cellule A1 sans perturber le contenu de la cellule A1.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (9011) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Getting_Rid_of_Alphabetic_Characters [Se débarrasser des caractères alphabétiques].