[RESOLU]Fonction Excel STXT

Fonction Excel STXT [RESOLU] - VB/VBA/VBS - Programmation

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
Reply

Marsh Posté le 27-09-2005 à 12:28:48   

Reply

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

Reply

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. :)

Reply

Marsh Posté le 27-09-2005 à 13:18:22    

C'est plus simple... [:lol]

Reply

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?
 

Reply

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

Reply

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...


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Marsh Posté le 27-09-2005 à 21:35:01    

Et =ENT(C/1000000), c'est pas nettement plus simple???


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed