Salut David,
A y réfléchir, et pour te faciliter la vie (!), je crois qu'on aurait avantage de compliquer quelque peu la formule en la combinant avec une autre fonction, de sorte qu'on ne doive plus calculer le nombre de caractères à partir duquel on compte le nombre de caractères à extraire.
Tu ne m'as pas compris, c'est pas grave !
Voici l'explication :
Si le chiffre à extraire est toujours celui qui se trouve entre (), il suffit de chercher la position du "(", et pour cela on emploie la fonction "cherche" qui te donne la position du caractère recherché.
Ainsi si en A1 tu tapes "David", la fonction : =CHERCHE("a";A1) te renverras 2.
Si tu remplaces "David" par "André", la fonction te renverras 1.
Les lettres et signes spéciaux doivent être mis entre "", les chiffres non.
XL ne fait pas la différence entre les majuscules et les minuscules.
Revenons à nos moutons !
Dans la fonction : =STXT(texte;no_départ;no_car), le no_départ peut être remplacé par la fonction CHERCHE.
Ainsi, si en A1 tu as "Mineur (1)", la formule : =STXT(A1;CHERCHE("(";A1);1) te reverras "1", c'est à dire le premier caractère qui se trouve après le "(".
Si tu remplaces "Mineur (1)" par "Conjointement (1)", cette même formule te renverras toujours "1".
Il y a aussi une autre méthode.
Si ton texte se termine toujours par "(un chiffre)", tu peux également employer la fonction NBCAR.
Elle compte le nombre de caractères.
Ainsi si en A1 tu as "Mineur (1)", =NBCAR(A1) te renverras "10", donc : =NBCAR(A1)-1 te renverras "9".
La formule : =STXT(A1;nbcar(A1)-1;1) te renverras donc "1", tout autant pour "Mineur (1)" que pour "Conjointement (1)".
Tu me suis toujours ?
Compliquons quelque peu le problème.
Supposons que le chiffre entre () soit un nombre, par exemple "123", et qu'il ne soit pas situé en fin de texte.
Exemple : je veux extraire avec une même formule les caractères qui se trouvent entre () tout autant dans "Mineur (123)" que dans "Conjointement (1) parfait".
Il faut donc tenir compte de deux variables, la position du "(" et le nombre de caractères entre les "(" et ")".
Il y a à nouveau plusieurs approches possibles, mais en voici une :
Le no_départ peut être trouvé par la fonction CHERCHE sur caractère "(" (voir ci-dessus).
Le no_car peut être trouvé par la fonction CHERCHE du caractère ")" – CHERCHE du caractère "(".
Ainsi la formule : =STXT(A5;CHERCHE("(";A5)+1;CHERCHE(")";A5)-1-CHERCHE("(";A5)) te renverras tout aussi bien "123" que "1" dans l'exemple précité.
C'est peut-être un peu compliqué mais il faut t'y faire, c'est ça XL !
Prends le temps de bien étudier les exemples que je viens de te donner. et tu verras que c'est pas si compliqué que cela, une simple affaire de logique.
Bonne soirée quand même.
Ândré.