Fonction Excel STXT [RESOLU] - VB/VBA/VBS - Programmation
Marsh Posté le 27-09-2005 à 13:15:58
Je ne connais pas, mais tu dois pouvoir le faire avec la fonction stxt ça.
genre STXT(C3, longueurdelachainedanslacellule(C3)-longueurdecequetuveuxprendre, longueurdelachainedanslacellule(C3)-cequilyaavant())
un truc du genre (c'est peut-être faux)... Je ne connais pas les fonctions excel, mais avec les longueurs de chaine, tu dois pouvoir te débrouiller...
Ou ptet mieux, la fonction stxt ira peut-être à l'envers si tu lui indiques une longueur négative... A tester
Marsh Posté le 27-09-2005 à 13:17:50
Il y a la fonction DROITE(C3,2) qui retourne les deux derniers caractères de la cellule C3.
Marsh Posté le 27-09-2005 à 15:21:57
OUi bien sur mais c pas ça qu'il me faut.
Je m'explique mieux:
Voici ce qui est dans une colonne (après la "->" c'est ce qu'il me faut obtenir):
6000045 -> 6
6000061
6000095
6000204
6000604
6000649
6001689
6001839
6001845
7000017
7000119
7000152
7000154
7000222
7000268
7000289
7000428 -> 7
8000019 -> 8
9000640 -> 9
10000047 -> 10
11000039 -> 11
11000051
11000209
11000245
14000298 -> 14
14000317
Mon problème est que j'ai des nombres à 7 chiffres et à 8 chiffres.
J'ai besoin de récupérer le premier chiffre quand c'est un nombre à 7 chiffres et 2 chiffres quand c'est un nombre à 8 chiffres.
Mon idée était donc d'utiliser la fonction "STXT" mais à l'envers de façon à se positionner sur le 6ème caractère en partant de la gauche et récupérer tous les caractère à sa gauche.
Compris?
Marsh Posté le 27-09-2005 à 16:13:23
Il existe peut-être une fonction qui te permettrait d'enlever une chaîne d'une autre chaîne...
Resultat = TonLongChiffre - DROITE(TonLongChiffre, 6)
Un truc comme ça... Cherche des fonctions comme ça avec excel
Marsh Posté le 27-09-2005 à 16:17:19
Bon pour ta fonction :
D'abord tu défini le nombre de caractères de ta chaÎne (pour savoir combien de caractères excel va sélectioner )
=> NBCAR(C3)
Syntaxe : NBCAR(Adresse_cellule)
Ensuite tu as 2 choix, pour utiliser cette fonction en combiné :
soit tu utilises STXT (qui est en fait pour choisir un nombre de caractères donnés à l'interieur d'une chaîne à partir d'un cartère donné)
=> STXT(C3;1;NBCAR(C3)-6)
Syntaxe STXT( adresse_cellule ; N° du caractère de départ ; Nb caractères )
Sinon tu utilise la fonction Gauche (qui te prends lun, nombre de caractères donnés à gauche à partir du premier caractère)
=> GAUCHE(C3;NBCAR(C3)-6)
Syntaxe GAUCHE ( Adresse_cellule ; Nb caractères )
bon courage !
P.S. : sur excel l'assistant pour les fonction est bien fait...
Marsh Posté le 27-09-2005 à 21:35:01
Et =ENT(C/1000000), c'est pas nettement plus simple???
Marsh Posté le 28-09-2005 à 15:53:31
Merci Watashi et Alaintech!
Très bonne idée alain tech ça marche nikel
J'ai pas tester ta solution Watashi mais elle est bonne il me semble aussi!
Problème résolu et encore merci
Marsh Posté le 27-09-2005 à 12:28:48
Bonjour,
La fonction sous Excel "STXT" fait ceci:
STXT renvoie un nombre donné de caractères extraits d'une chaîne de texte à partir de la position que vous avez spécifiée, en fonction du nombre de caractères spécifiés.
Par exemple: STXT(C3,1,2) avec dans la cellule C3 le nombre 9456897 renvoi : 94
Existe t-il une fonction qui renvoi pas à partir du début mais de la fin. On aurait donc FONCTIONINCONNU(C3,1,2) qui renverrait 97.
Pour toutes questions n'hésitait pas.
Message édité par Dolu007 le 28-09-2005 à 15:53:55