tedparker
Messages postés176Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention25 septembre 2006
-
2 juin 2004 à 17:43
tedparker
Messages postés176Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention25 septembre 2006
-
2 juin 2004 à 23:56
Je dois transformer n'importe quel montant dans une chaine d'exactement 12 caractères(on excluera le cas d'un montant de plus de 12 chiffres).
Le montant de base est un monétaire à 2 décimales (ex : 300,25 E) et cela doit donc se transformer en cette chaine:
000000030025.(le montant étant alors transformé en centimes).
Merci de m'aider please!
cs_paull
Messages postés2Date d'inscriptionjeudi 3 juillet 2003StatutMembreDernière intervention 2 juin 2004 2 juin 2004 à 18:48
Bonjour,
Tu peux utiliser cette fonction qui devrait t'aider.
Function Completer_a_gauche(argument As Variant, longueur As Integer) As String
la_chaine = Replace(CStr(argument), ".", "")
If Len(la_chaine) < longueur Then
Completer_a_gauche = String(longueur - Len(la_chaine), "0") + la_chaine
End If
End Function
Pour l'utiliser, il te suffira de tester comme suit par exemple :
msgbox Completer_a_gauche("123.45",12)
Explications :
"123.45" est une chaine que tu souhaites transformer.
12 est la longueur souhaitée (tu peux changer).
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 2 juin 2004 à 19:33
Salut tedparker
Attention : la solution de paull supprime le point sans vérifier qu'il y a bien deux chiffres après !
Il serait donc souhaitable de faire autrement :
-1- Refomatter la chaine pour s'assurer qu'elle a bien deux décimales :
Chaine = Format(MaDonnée, "######.00")
-2- Supprimer le point :
Chaine = Replace(MaChaine, ".", vbNullString)
-3- Ensuite, pour le formattage à douze digit, tu peux faire
Chaine = Format(Chaine, "000000000000")
C'est un peu plus simple, mais ça ne t'empèche pas de mettre ces 3 instructions dans une fonction comme le suggère Paull.
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 2 juin 2004 à 22:50
String est une fonction de vb6, par ex :
string(5,"0") te renvoie "00000"
Tu peux vérifier dans la MSDN en tapant string et cliquer sur fonction.
Ce que je t'ai indiqué, ça crée une chaine de '0' ( le nombre de '0' est la différence entre ton nombre max de caractères (12) et la longueur de ta donnée (convertie en centimes puis en texte). Puis tu rajoutes à cette chaine ta donnée convertie.
Maintenant, tu peux l'écrire aussi en une seule ligne comme ça :