Chris a un grand nombre de cellules contenant des numéros de pièce. Ces cellules peuvent contenir des chiffres ou des caractères, dans n’importe quelle combinaison. Ils peuvent également contenir des caractères spéciaux tels que des tirets, des barres obliques et des espaces.

Chris a besoin d’un moyen d’identifier si une cellule ne contient que des chiffres, sans prendre en compte les caractères spéciaux. Ainsi, une cellule contenant 123-45 apparaîtrait comme contenant uniquement des chiffres, alors que 123AB-45 ne le serait pas.

Le moyen le plus simple de déterminer si une cellule donnée contient uniquement les caractères et chiffres autorisés consiste à utiliser une formule qui supprime les caractères autorisés sans chiffres, puis vérifie si la valeur résultante est numérique. Toutes les formules suivantes peuvent très bien faire l’affaire:

=IF(IFERROR(INT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"-", ""),"/", "")," ", "")),FALSE), TRUE, FALSE)

=OR(ISNUMBER(SUBSTITUTE(A1,"-","")+0),ISNUMBER(SUBSTITUTE(A1,"/","")+0),ISNUMBER(SUBSTITUTE(A1," ","")+0))

=ISNUMBER(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1," ",""),"/",""),"-","")*1)

Vous pouvez également utiliser une simple macro pour déterminer si une cellule ne contient que des chiffres et vos caractères autorisés. Bien qu’il existe plusieurs façons d’aborder une telle macro, voici une méthode assez simple:

Function DigitsOnly(sRaw As String) As Boolean     Dim X As Integer     Const sAllowed As String = "0123456789 -/"



Application.Volatile     For X = 1 To Len(sRaw)

If InStr(sAllowed, Mid(sRaw, X, 1)) = 0 Then Exit For     Next X     DigitsOnly = False     If X > Len(sRaw) Then DigitsOnly = True End Function

La macro examine tout ce qui lui est passé, comparant chaque caractère de la chaîne à une liste de caractères autorisés (dans la constante sAllowed).

Si un caractère non autorisé est détecté, la boucle est sortie prématurément et une valeur False est renvoyée. Ainsi, si vous souhaitez évaluer la cellule en A1, vous pouvez utiliser ce qui suit dans votre macro:

=DigitsOnly(A1)

Puisqu’elles renvoient des valeurs Vrai ou Faux, n’importe laquelle de ces approches (formule ou fonction définie par l’utilisateur) peut être utilisée conjointement avec une mise en forme conditionnelle pour apporter des modifications de mise en forme à vos numéros de pièce.

_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 (12654) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.