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

Résolu
Signaler
Messages postés
304
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
-
Messages postés
304
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
-
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

Messages postés
71
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
21 octobre 2008

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
7 juin 2009
5
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)
Messages postés
304
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
2
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
Messages postés
304
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
2
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
Messages postés
71
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
21 octobre 2008

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
Messages postés
304
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
2
Oki ça marche nikel :-) :-) :-)

Je vous remercie bcp bcp

BIz