OVH Cloud OVH Cloud

Problème affichage ListBox nombre négatif ???

13 réponses
Avatar
LE TROLL
Bonjour,

J'ai un problème d'affichage des nombres négatifs dans une ListBox,
voici ce que ça fait sur un format(chaine,"### ### ##0.00"):

-123456789,12 ça fait -123456789,12 c'est OK
-23,45 ça fait - 23,45, déjà là y a 1 blanc en trop "- 2"...
Mais si je mets -123,45, ça donne - 123,45 = 2 blancs en trop entre "-
1"...

Certes je pourrais faire une batterie de tests infernaux afin de
repositionner manuellement les chiffres dans la chaîne, genre
- ne pas mettre de format sauf "0.00"
- Puis tester, si pas de moins dans la chaîne = ok
- sinon, coller le 1 au dernier chiffre gauche
- puis si >= à 7 ok
- et si > 7, je fais un espace entre 6 et 8, etc...
- enfin, je recadre tout à droit...

Mais n'y aurait-il pas plus court pour que le moins (-) colle dans tous
les cas à la valeur minimum (0.00) ???

Merci, au revoir et à bientôt.
--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !

10 réponses

1 2
Avatar
Eric
Bonjour,

"LE TROLL" <le écrivait

J'ai un problème d'affichage des nombres négatifs dans une
ListBox,
voici ce que ça fait sur un format(chaine,"### ### ##0.00"):

-123456789,12 ça fait -123456789,12 c'est OK
-23,45 ça fait - 23,45, déjà là y a 1 blanc en trop "- 2"...
Mais si je mets -123,45, ça donne - 123,45 = 2 blancs en trop entre
"- 1"...

Mais n'y aurait-il pas plus court pour que le moins (-) colle dans
tous
les cas à la valeur minimum (0.00) ???

Merci, au revoir et à bientôt.




Utilises Format(chaine,"#,##0.0") et ca devrait marcher.

--
A+
Eric

Lien à suivre : http://users.skynet.be/mpfa/
Avatar
LE TROLL
Non, les virgules sont refusées dans Format, il n'accepte que #
##0.00 (espace, pas de virgule, et un point à la place de la virgule pour
les décimaux, mais ça ne résout en rien le problème du moins, lis mieux
camarade avant de me répondre, ça y a longtemps que je l'avais écrit
format(x,"### ### ##0.00")...
---------

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

Bonjour,

"LE TROLL" <le écrivait

J'ai un problème d'affichage des nombres négatifs dans une
ListBox,
voici ce que ça fait sur un format(chaine,"### ### ##0.00"):

-123456789,12 ça fait -123456789,12 c'est OK
-23,45 ça fait - 23,45, déjà là y a 1 blanc en trop "- 2"...
Mais si je mets -123,45, ça donne - 123,45 = 2 blancs en trop entre
"- 1"...

Mais n'y aurait-il pas plus court pour que le moins (-) colle dans
tous
les cas à la valeur minimum (0.00) ???

Merci, au revoir et à bientôt.




Utilises Format(chaine,"#,##0.0") et ca devrait marcher.

--
A+
Eric

Lien à suivre : http://users.skynet.be/mpfa/


Avatar
Eric
"LE TROLL" <le écrivait

lis mieux camarade avant de me répondre, ...
---------




re,

Toujours aussi agréable à ca que je vois.
La proc ci dessous me remplit la listbox sans problème et sans espace entre
le signe - et le chiffre :

Private Sub Form_Load()
Dim a As String, b As String, c As String
a = -123456789.12
b = -23.45
c = -123.45
List1.AddItem Format(a, "#,##0.00")
List1.AddItem Format(b, "#,##0.00")
List1.AddItem Format(c, "#,##0.00")
End Sub

lalistbox affiche les valeurs avec les séparateurs de milliers, millions
... qui sont des espaces.

T'as essayé au moins ?

Ton format est bidon : format(chaine,"### ### ##0.00")

Environnement : WInXP Pro, VB6
Paramètres régionaux : les mêmes qu'à Paris ou qq part en France !!!

--
A+
Eric

Lien à suivre : http://users.skynet.be/mpfa/
Avatar
ng
Salut,

Au passage utilise plutot Format$() que Format(), pour les raisons qu'on
connait :) (plus rapide car travaille directement en string et non en
variant etc...)

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Eric wrote:
"LE TROLL" <le écrivait

lis mieux camarade avant de me répondre, ...
---------




re,

Toujours aussi agréable à ca que je vois.
La proc ci dessous me remplit la listbox sans problème et sans espace
entre le signe - et le chiffre :

Private Sub Form_Load()
Dim a As String, b As String, c As String
a = -123456789.12
b = -23.45
c = -123.45
List1.AddItem Format(a, "#,##0.00")
List1.AddItem Format(b, "#,##0.00")
List1.AddItem Format(c, "#,##0.00")
End Sub

lalistbox affiche les valeurs avec les séparateurs de milliers,
millions ... qui sont des espaces.

T'as essayé au moins ?

Ton format est bidon : format(chaine,"### ### ##0.00")

Environnement : WInXP Pro, VB6
Paramètres régionaux : les mêmes qu'à Paris ou qq part en France !!!


Avatar
LE TROLL
Merci, merci...

Ben, pourquoi je ne suis pas agréable, j'indique que je mets un
format(x, ### ### ##0.00)

Toi tu me dis de mettre des virules entre les espaces (ça change quoi
vis à vis du moins (-)) ???

Oui, c'est suivant les params régionaux, moi c'est des espaces, donc tes
virgules font des espaces, heureusement d'ailleurs, sinon j'aurais
"-.123,45", soit "-.", lol...

J'ai testé ta proposition, seulement je n'écris pas en arabe (on colle à
droite), et j'ai dit que c'était dans un liste, alors on peut présumer que
ça doit être aligné (police proportionnelle donc), j'ai modifié ton code,
mais ça ne marche pas mieux (y cmpris avec des RTrim), code:

Sub Form_Load()
Dim a As String, b As String, c As String
Dim espace As Byte '###
'
a = -123456789.12
b = -23.45
c = -123.45
espace = 14 - Len(a) '###
List1.AddItem Space(espace) & Format(a, "#,##0.00")
espace = 14 - Len(b) '###
List1.AddItem Space(espace) & Format(b, "#,##0.00")
espace = 14 - Len(c) '###
List1.AddItem Space(espace) & Format(c, "#,##0.00")
End Sub

Ça donne:
-123456789.12
-23.45
-123.45

Ainsi, le "-" est collé, mais ça ne s'aligne plus (couRier new)...


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

"LE TROLL" <le écrivait

lis mieux camarade avant de me répondre, ...
---------




re,

Toujours aussi agréable à ca que je vois.
La proc ci dessous me remplit la listbox sans problème et sans espace
entre
le signe - et le chiffre :

Private Sub Form_Load()
Dim a As String, b As String, c As String
a = -123456789.12
b = -23.45
c = -123.45
List1.AddItem Format(a, "#,##0.00")
List1.AddItem Format(b, "#,##0.00")
List1.AddItem Format(c, "#,##0.00")
End Sub

lalistbox affiche les valeurs avec les séparateurs de milliers, millions
... qui sont des espaces.

T'as essayé au moins ?

Ton format est bidon : format(chaine,"### ### ##0.00")

Environnement : WInXP Pro, VB6
Paramètres régionaux : les mêmes qu'à Paris ou qq part en France !!!

--
A+
Eric

Lien à suivre : http://users.skynet.be/mpfa/


Avatar
Eric
"ng" écrivait

Salut,

Au passage utilise plutot Format$() que Format(), pour les raisons qu'on
connait :) (plus rapide car travaille directement en string et non en
variant etc...)




Bonjour ng,

Oui celle-là, je l'oublie souvent. ;-)

--
A+
Eric

Lien à suivre : http://users.skynet.be/mpfa/
Avatar
Eric
re,

Essaies avec ca :
Private Sub Form_Load()
Dim a As String, b As String, c As String, max As String
a = -123456789.12
b = -23.45
c = -123.45
a = Format(a, "#,##0.00")
b = Format(b, "#,##0.00")
c = Format(c, "#,##0.00")
max = Space(20) ' à adapter
RSet max = a
List1.AddItem max
RSet max = b
List1.AddItem max
RSet max = c
List1.AddItem max
End Sub

Police New Courrier. Adapter la largeur de la Listbox

"LE TROLL" <le écrivait


J'ai testé ta proposition, seulement je n'écris pas en arabe (on
colle à
droite), et j'ai dit que c'était dans un liste, alors on peut présumer
que ça doit être aligné (police proportionnelle donc), j'ai modifié
ton code, mais ça ne marche pas mieux (y cmpris avec des RTrim), code:

Sub Form_Load()
Dim a As String, b As String, c As String
Dim espace As Byte '###
'
a = -123456789.12
b = -23.45
c = -123.45
espace = 14 - Len(a) '###
List1.AddItem Space(espace) & Format(a, "#,##0.00")
espace = 14 - Len(b) '###
List1.AddItem Space(espace) & Format(b, "#,##0.00")
espace = 14 - Len(c) '###
List1.AddItem Space(espace) & Format(c, "#,##0.00")
End Sub

Ça donne:
-123456789.12
-23.45
-123.45

Ainsi, le "-" est collé, mais ça ne s'aligne plus (couRier new)...



Lien à suivre : http://users.skynet.be/mpfa/








--
A+
Eric

Lien à suivre : http://users.skynet.be/mpfa/
Avatar
Eric
.../...
Puis comme le faisait très justement remarquer ng, tu remplaces Format()
par Format$(), chose que j'ai oublié de modifier (voire de prendre
l'habitude d'utiliser).
--
A+
Eric
Lien à suivre : http://users.skynet.be/mpfa/
Avatar
Eric
re,

Vois la copie d'écran que j'obtiens chez moi avec ton code.
Tes données sont bien cadrées.

http://cjoint.com/?mCoGiETgnA
--
A+
Eric

Lien à suivre : http://users.skynet.be/mpfa/
Avatar
LE TROLL
Oui, bien cadrées, c'est avec l'éditeur de Outlook que ça a foiré,
mais le négatif "-", il se décolle dans le bas, vers les petits chiffres,
est-ce qu'avec mon code, le négatif colle toujours, et si oui, qu'est-ce
cher ami ???
---------

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

re,

Vois la copie d'écran que j'obtiens chez moi avec ton code.
Tes données sont bien cadrées.

http://cjoint.com/?mCoGiETgnA
--
A+
Eric

Lien à suivre : http://users.skynet.be/mpfa/


1 2