Se débarrasser des caractères alphabétiques (Microsoft Excel)
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]
.