Pb pour enlever la fin d'un mot s'il est trop grand

Résolu
ndsaerith Messages postés 304 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 10 mai 2017 - 2 févr. 2005 à 16:01
ndsaerith Messages postés 304 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 10 mai 2017 - 2 févr. 2005 à 16:48
Coucou tout le monde!!

Voila, g un petit pb de chaine.
Dans mon prog je compte le nombre de lettres dont se compose un mot, et si ce nombre est plus grand que 30, alors il faut que j'enlève les dernières lettres pour qu'il soit egale à 30.
Savez vous comment je pourrais faire pour enlever les lettres en trop? Il ya t il des fonctions? ou d'autres solutions?

Merci bcp bcp d'avance.

BIz

6 réponses

espadon2 Messages postés 71 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 21 octobre 2008
2 févr. 2005 à 16:23
Alors tout d' abord salut ndsaerith

Voila une fonction qui renvoie ton mot tronquer si sa longeur est superieur à 30,sinon elle te renvoie le mot tel quel :
--------------------------------------------------------------------------------------
Function TronqueChaine(aChaine As String)
Dim myChaine As String


If Len(aChaine) > 30 Then
' prend les 30 premiers caracteres de la chaine
myChaine = Mid(aChaine, 1, 30)
Else
myChaine = aChaine
End If

' retourne du mot tronquer ou pas


TronqueChaine = myChaine
End Function
--------------------------------------------------------------------
il ne te reste plus qu' a l'appeller cette fonction :
exp:

dim mot as string
' un mot de 40 caracteres
mot = "0123456789012345678901234567890123456789"

mot =TronqueChaine(mot)
' maintenant le mot est tronquer
MsgBox mot
' affiche "012345678901234567890123456789" c a d un mot de 30 ' caracteres...

en espérant repondre a ta question .... bonne journée et bon programmation
SALUT

espadon
3
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 6
2 févr. 2005 à 16:13
Est-ce que ça ça suffit, ou y a une subtilité que j'ai pas pigée ?

Dim ls_MonMot as String
ls_MonMot = "12345678901234567890123456789012345678901234567890"
debug.print Left(ls_MonMot, 30)
0
ndsaerith Messages postés 304 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 10 mai 2017 2
2 févr. 2005 à 16:31
Heu ben ça marche pas, en fait si je teste avec un si len(monmot)>30 et que je met le code debug.print dedan, il rentre même pas dans la boucle, dc g enkevé le si au cas ou peut etre ça suffi de mettre le dbug.print, mais il passe dessus comme si il n'existait pas. G toutjours la même erreur.
En fait je veut renommer des feuilles escel, mais le pb c que si le nom dépasse 31 caractères, ça bug l'appli en mettant un message qui dit que le nom est trop long.
C'est pour ça que je veux le vérifier et le couper s'il est trop grand.
Alors, voyez vous ce qui ne va pas?

BIz
0
ndsaerith Messages postés 304 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 10 mai 2017 2
2 févr. 2005 à 16:34
En fait g pas réfléchi en effet il faut bien que mon mot une fois tronqué aille dans une var, car en fait à l'instant, je reprend monmot, et dc c celui que je prend comme ref pour le tronquer mais c pas le mot final, je pense que c pour ça que ça marche pas.
Je vais essayer.

Merci.

BIz
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
espadon2 Messages postés 71 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 21 octobre 2008
2 févr. 2005 à 16:34
debug.print sert a affichier qqchose dans la console d 'execution pas a faire qqchose , c'est juste utile pour debugger une appli, pour tracer tes variables

espadon
0
ndsaerith Messages postés 304 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 10 mai 2017 2
2 févr. 2005 à 16:48
Oki ça marche nikel :-) :-) :-)

Je vous remercie bcp bcp

BIz
0