Distinguer les chiffres des lettres

0

Si j'ai un code composé de chiffres et lettres, est-ce que je peux extraire les chiffres seulement ou l'inverse (les lettres seulement) ?

Posté le 7 septembre 2015, 12:44
par Nasser
Répondre
3

Bonsoir,

Voici une solution sans macro : http://www.cjoint.com/c/EIlajejyowi

Tu verras que j'ai protégé la feuille mais tu peux déprotéger sans problème.

En fait pour l'instant tu n'as accès qu'à la première colonne pour mettre tes codes (dans l'exemple j'ai prévu 10 caractères maximum mais il y a naturellement moyen de monter plus haut) ainsi qu'à la cellule E1 qui contient ton choix (1=numérique et 2 pour alpha).

Fais des essais et tu verras que seuls apparaîtront les chiffres ou les lettres (en fonction de ton choix) dans la colonne B.

Le tableur est préparé pour 20 codes de 10 caractères maximum. (que tu peux augmenter en dupliquant la formule soit horizontalement pour augmenter le nombre de caractères du code soit verticalement pour augmenter le nombre de codes).

Comment cela marche : 

1 créer une colonne qui va contenir le résultat (ici la colonne B - tes codes étant en A)

2 créer autant de colonne que la capacité maximum de caractères de tes codes (pour l'exemple j'ai mis 10 colonnes)

3 dans ces colonnes il faut y mettre une formulation volatile qui s'adapte en fonction de la colonne dans laquelle elle se trouve:

=SI(NBCAR($A2)COLONNE()-2;"";SI(ET(CODE(STXT($A2;COLONNE()-2;1))>47;CODE(STXT($A2;COLONNE()-2;1))<58)=VRAI;SI($E$1=1;STXT($A2;COLONNE()-2;1);"");SI($E$1=2;STXT($A2;COLONNE()-2;1);"")))

Nous commençons par nous demander si la colonne A pour la ligne contient quelque chose en testant si le nombre de caractère est supérieur au numéro de colonne -2 (si nous sommes dans la colonne C cela fait 3-2=1 cela veut donc dire que A2 contient au moins 1 caractère et ainsi de suite pour les autres colonnes ainsi si le code est plus petit que 10 la formule mettra des vides ("").  

Ensuite nous nous demandons si le 1 caractère du code à un CODE compris entre 48 et 57 (la codification des caractères en code binaire se fait de 48 à 57 pour 0 à 9).  Si oui, nous testons quel type de code nous désirons (numérique ou alpha) et en fonction de la réponse nous mettons le caractère ou "".

La colonne B contient une simple concaténation des 10 colonnes.

Cette formule est complètement volatile et peut donc être dupliquée facilement.

Tu peux aussi masquer les colonnes qui effectuent les tests pour ne pas les voir apparaître à l'écran et pour ne pas les imprimer. 

Tu peux aussi mettre les colonnes de tests plus à droite du tableur en colonne AA par exemple pour pouvoir développer d'autres calculs dans les colonnes à côté de B mais il te faudra adapter le nombre à déduire du numéro de colonne pour arriver à avoir une progression 1 ; 2 ; 3 ; 4....  Tu auras compris que j'utilise le numéro de colonne comme référence progressive de 1 afin d'obtenir la recherche du 1er caractère puis du 2d etc... Comme cela tu peux dupliquer la formule sans devoir la modifier dans chaque colonne.  Attention aussi de bien respecter les codes $ qui rendront les paramètres de cellule partiellement volatile et partiellement fixe.

Merci de confirmer si cela t'a aidé et n"hésites pas à demander de l'aide si nécessaire.

A+

Posté le 11 septembre 2015, 02:42
par CHRIS

Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :