OVH Cloud OVH Cloud

Mise en forme d'une zone numerique

7 réponses
Avatar
xx
Bonjour
Je tente de mettre une valeur numerique 'i'
-dans une variable string 's' de longueur fixe (eg *6*)
-en l'alignant a *droite*
-en remplissant a gauche avec des *blancs*

par exemple,
'1' s'ecrit ' 1'
'412' s'ecrit ' 412'
'12345' s'ecrit ' 12345'

Aligner a gauche
est le processus normal
Aligner a droite en remplissant a gauche avec des '0'
s'ecrit s= format(i, "000000")
L'usage de "#" et " " dans le format ne donne pas le resultat espere.
Ma solution pour avoir ET alignement a droite ET remplissage de *blancs* me
parait trop compliquee pour qu'il n'existe pas une solution plus simple.

Merci

7 réponses

Avatar
Ledev
"xx" a écrit dans le message de
news:
Bonjour
Je tente de mettre une valeur numerique 'i'
-dans une variable string 's' de longueur fixe (eg *6*)
-en l'alignant a *droite*
-en remplissant a gauche avec des *blancs*

par exemple,
'1' s'ecrit ' 1'
'412' s'ecrit ' 412'
'12345' s'ecrit ' 12345'

Aligner a gauche
est le processus normal
Aligner a droite en remplissant a gauche avec des '0'
s'ecrit s= format(i, "000000")
L'usage de "#" et " " dans le format ne donne pas le resultat espere.
Ma solution pour avoir ET alignement a droite ET remplissage de *blancs*


me
parait trop compliquee pour qu'il n'existe pas une solution plus simple.



tente ceci:

function AligneADroite(nbr as single, longueur as integer) as string
AligneADroite=str(nbr)
AligneADroite=space(longueur-len(AligneADroite))+AligneADroite

end function



Merci




Avatar
Clive Lumb
Faire une petite fonction ....
Function MyFormat(Entier as Integer, Longueur as Integer) as String
Dim Temp as String
Temp = Trim$(Str$(Entier))
If len(Temp) > Longueur then
MyFormat = string$(Longueur, "#") 'Overflow/Débordement
Else
MyFormat= String$(Longueur - Len(Temp), " ") & Temp
End If
End Function

Clive

"xx" a écrit dans le message de news:

Bonjour
Je tente de mettre une valeur numerique 'i'
-dans une variable string 's' de longueur fixe (eg *6*)
-en l'alignant a *droite*
-en remplissant a gauche avec des *blancs*

par exemple,
'1' s'ecrit ' 1'
'412' s'ecrit ' 412'
'12345' s'ecrit ' 12345'

Aligner a gauche
est le processus normal
Aligner a droite en remplissant a gauche avec des '0'
s'ecrit s= format(i, "000000")
L'usage de "#" et " " dans le format ne donne pas le resultat espere.
Ma solution pour avoir ET alignement a droite ET remplissage de *blancs*


me
parait trop compliquee pour qu'il n'existe pas une solution plus simple.

Merci




Avatar
Bluesy
Salut

Ca te plais, ça ?


Private Sub Form_Load()
Dim MonTexte As String
MonTexte = AlignDroite(21, 6)
End Sub

Public Function AlignDroite(Valeur As Long, Longueur As Long) As String

AlignDroite = Right$(Space$(Longueur) & CStr(Valeur), Longueur)

End Function

Un certain xx écrivait ici même ce qui suit:

Bonjour
Je tente de mettre une valeur numerique 'i'
-dans une variable string 's' de longueur fixe (eg *6*)
-en l'alignant a *droite*
-en remplissant a gauche avec des *blancs*

par exemple,
'1' s'ecrit ' 1'
'412' s'ecrit ' 412'
'12345' s'ecrit ' 12345'

Aligner a gauche
est le processus normal
Aligner a droite en remplissant a gauche avec des '0'
s'ecrit s= format(i, "000000")
L'usage de "#" et " " dans le format ne donne pas le resultat espere.
Ma solution pour avoir ET alignement a droite ET remplissage de *blancs* me
parait trop compliquee pour qu'il n'existe pas une solution plus simple.

Merci





Avatar
xx
"xx" a écrit dans le message de
news:

Ma solution pour avoir ET alignement a droite ET remplissage de *blancs*
me parait trop compliquee pour qu'il n'existe pas une solution plus
simple.



Merci des reponses
Mais les solutions proposees sont du meme ordre de "complique" que ce que
j'avais imagine.

J'esperais vaguement un "Format", avec un caractere sournois quelconque...

Je pense neanmoins survivre a ma desillusion. :-)
Avatar
Ledev
Ait, dis voir, tu serait pas le xx qui serait venue il y a quelque temps sur
alt.fr.shareware.auteur insulter tous le monde par hasard???

xx wrote:
Bonjour
Je tente de mettre une valeur numerique 'i'
-dans une variable string 's' de longueur fixe (eg *6*)
-en l'alignant a *droite*
-en remplissant a gauche avec des *blancs*

par exemple,
'1' s'ecrit ' 1'
'412' s'ecrit ' 412'
'12345' s'ecrit ' 12345'

Aligner a gauche
est le processus normal
Aligner a droite en remplissant a gauche avec des '0'
s'ecrit s= format(i, "000000")
L'usage de "#" et " " dans le format ne donne pas le resultat espere.
Ma solution pour avoir ET alignement a droite ET remplissage de
*blancs* me parait trop compliquee pour qu'il n'existe pas une
solution plus simple.

Merci


Avatar
Clive Lumb
Comme Gigfy j'avais les neurones qui collaient. Voici comment le faire avec
"Format"

format(str$(1234),"@@@@@@")

Tada !

Clive

"xx" a écrit dans le message de news:
#
"xx" a écrit dans le message de
news:

> Ma solution pour avoir ET alignement a droite ET remplissage de *blancs*
> me parait trop compliquee pour qu'il n'existe pas une solution plus
> simple.

Merci des reponses
Mais les solutions proposees sont du meme ordre de "complique" que ce que
j'avais imagine.

J'esperais vaguement un "Format", avec un caractere sournois quelconque...

Je pense neanmoins survivre a ma desillusion. :-)




Avatar
xx
"Clive Lumb" a écrit dans le message de
news:
Comme Gigfy j'avais les neurones qui collaient. Voici comment le faire


avec
"Format"

format(str$(1234),"@@@@@@")

Tada !



MERCI
Exactement ce que je cherchais.