la fonction format est ton amie. Mais je pense qu'avant d'obtenir 0025.00.33 il y a un traitement et c'est là qu'il faut agir.
Sinon soit S la chaîne à traiter 'ici 0025.003.33 while left(S,1,1)="0" S=Mid(S,2) Wend
Au revoir
Patrice
"alain" a écrit dans le message de news: 44174c6d$0$21550$
Bonjour, je cherche à supprimer les premiers zéros de mon chiffre formaté : 0025.003.33 pour obtenir 25.003.33 Merci pour votre aide Alain
X
Bonjour,
De toute façon ton nombre il est faux, VB ne va pas l'avaler, tu lui as mis x.y.z, c'est comme si tu mettais x,y,z... On ne peut pas mettre 2 fois un groupe de décimal dans un même nombre (un seul point par nombre)!
Si c'est du texte, manifestement oui, autre possibilité (quand ton nombre sera aux normes (1 seul point)), tu peux le convertir, en valeur numérique, de facto il prendra un format numérique, soit:
------ Site logiciels http://irolog.free.fr Mail http://irolog.free.fr/ecrire/index.htm Site perso http://irolog.free.fr/joe/index.htm Principe d'utilisation des news Groups http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm ------------------------------------------------------------------------------------ "alain" a écrit dans le message de news: 44174c6d$0$21550$
Bonjour, je cherche à supprimer les premiers zéros de mon chiffre formaté : 0025.003.33 pour obtenir 25.003.33 Merci pour votre aide Alain
Bonjour,
De toute façon ton nombre il est faux, VB ne va pas l'avaler, tu lui as
mis x.y.z, c'est comme si tu mettais x,y,z... On ne peut pas mettre 2 fois
un groupe de décimal dans un même nombre (un seul point par nombre)!
Si c'est du texte, manifestement oui, autre possibilité (quand ton
nombre sera aux normes (1 seul point)), tu peux le convertir, en valeur
numérique, de facto il prendra un format numérique, soit:
------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"alain" <alain@no_spam.fr> a écrit dans le message de news:
44174c6d$0$21550$626a54ce@news.free.fr...
Bonjour,
je cherche à supprimer les premiers zéros de mon chiffre formaté :
0025.003.33 pour obtenir 25.003.33
Merci pour votre aide
Alain
De toute façon ton nombre il est faux, VB ne va pas l'avaler, tu lui as mis x.y.z, c'est comme si tu mettais x,y,z... On ne peut pas mettre 2 fois un groupe de décimal dans un même nombre (un seul point par nombre)!
Si c'est du texte, manifestement oui, autre possibilité (quand ton nombre sera aux normes (1 seul point)), tu peux le convertir, en valeur numérique, de facto il prendra un format numérique, soit:
------ Site logiciels http://irolog.free.fr Mail http://irolog.free.fr/ecrire/index.htm Site perso http://irolog.free.fr/joe/index.htm Principe d'utilisation des news Groups http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm ------------------------------------------------------------------------------------ "alain" a écrit dans le message de news: 44174c6d$0$21550$
Bonjour, je cherche à supprimer les premiers zéros de mon chiffre formaté : 0025.003.33 pour obtenir 25.003.33 Merci pour votre aide Alain
alain
Merci pour vos lumières, je récidive..
Mais j'ai oublié de dire que mes chiffres peuvent avoir des valeurs différentes : 2542.012.22 ou 0000.012.01 ou 0000.000.12 pour obtenir 2542.012.22 ou 12.01 ou 12.
J'essai avec la fonction Format(MonNum, "&&&&.&&&.&&") C'est bon mais pour 0000.012.01 j'obtient en sortie .012.01 , il faudrait supprimer le point de gauche.
Et si vous avez le temps, il faudrait que je puisse faire l'inverse. A la saisie dans une zone text de 1 à 9 chiffres , formater mon chiffre comme cela : XXX.XXX.XX
Merci pour votre patience.........
Alain
"alain" a écrit dans le message de news: 44174c6d$0$21550$
Bonjour, je cherche à supprimer les premiers zéros de mon chiffre formaté : 0025.003.33 pour obtenir 25.003.33 Merci pour votre aide Alain
Merci pour vos lumières, je récidive..
Mais j'ai oublié de dire que mes chiffres peuvent avoir des valeurs
différentes : 2542.012.22 ou 0000.012.01 ou 0000.000.12
pour obtenir
2542.012.22 ou 12.01 ou 12.
J'essai avec la fonction Format(MonNum, "&&&&.&&&.&&")
C'est bon mais pour 0000.012.01 j'obtient en sortie .012.01 , il faudrait
supprimer le point de gauche.
Et si vous avez le temps, il faudrait que je puisse faire l'inverse.
A la saisie dans une zone text de 1 à 9 chiffres , formater mon chiffre
comme cela : XXX.XXX.XX
Merci pour votre patience.........
Alain
"alain" <alain@no_spam.fr> a écrit dans le message de news:
44174c6d$0$21550$626a54ce@news.free.fr...
Bonjour,
je cherche à supprimer les premiers zéros de mon chiffre formaté :
0025.003.33 pour obtenir 25.003.33
Merci pour votre aide
Alain
Mais j'ai oublié de dire que mes chiffres peuvent avoir des valeurs différentes : 2542.012.22 ou 0000.012.01 ou 0000.000.12 pour obtenir 2542.012.22 ou 12.01 ou 12.
J'essai avec la fonction Format(MonNum, "&&&&.&&&.&&") C'est bon mais pour 0000.012.01 j'obtient en sortie .012.01 , il faudrait supprimer le point de gauche.
Et si vous avez le temps, il faudrait que je puisse faire l'inverse. A la saisie dans une zone text de 1 à 9 chiffres , formater mon chiffre comme cela : XXX.XXX.XX
Merci pour votre patience.........
Alain
"alain" a écrit dans le message de news: 44174c6d$0$21550$
Bonjour, je cherche à supprimer les premiers zéros de mon chiffre formaté : 0025.003.33 pour obtenir 25.003.33 Merci pour votre aide Alain
Gloops
alain a écrit :
A la saisie dans une zone text de 1 à 9 chiffres , formater mon chiffre comme cela : XXX.XXX.XX
Salut,
ça, c'est l'affaire du contrôle MaskedEdit. Dans les composants (boîte ouverte avec les touches Ctrl T), déclarer "Microsoft Masked Edit Control 6.0 (SP3)" (fichier C:WINDOWSSYSTEM32MSMASK32.OCX)
Chez moi, la première fois il faut que le projet soit ouvert avec les droits administrateur.
OCX ça doit déclencher un réflexe : attention à combien de machines doivent utiliser mon application, car il y a du boulot derrière pour le déploiement. Pour un parc international, faire une recherche sur Internet pour trouver une solution avec les API.
alain a écrit :
A la saisie dans une zone text de 1 à 9 chiffres , formater mon chiffre
comme cela : XXX.XXX.XX
Salut,
ça, c'est l'affaire du contrôle MaskedEdit.
Dans les composants (boîte ouverte avec les touches Ctrl T), déclarer
"Microsoft Masked Edit Control 6.0 (SP3)" (fichier
C:WINDOWSSYSTEM32MSMASK32.OCX)
Chez moi, la première fois il faut que le projet soit ouvert avec les
droits administrateur.
OCX ça doit déclencher un réflexe : attention à combien de machines
doivent utiliser mon application, car il y a du boulot derrière pour le
déploiement. Pour un parc international, faire une recherche sur
Internet pour trouver une solution avec les API.
A la saisie dans une zone text de 1 à 9 chiffres , formater mon chiffre comme cela : XXX.XXX.XX
Salut,
ça, c'est l'affaire du contrôle MaskedEdit. Dans les composants (boîte ouverte avec les touches Ctrl T), déclarer "Microsoft Masked Edit Control 6.0 (SP3)" (fichier C:WINDOWSSYSTEM32MSMASK32.OCX)
Chez moi, la première fois il faut que le projet soit ouvert avec les droits administrateur.
OCX ça doit déclencher un réflexe : attention à combien de machines doivent utiliser mon application, car il y a du boulot derrière pour le déploiement. Pour un parc international, faire une recherche sur Internet pour trouver une solution avec les API.
Patrice Henrio
Si j'ai bien compris, seule la première partie est formatée et éventuellement une chaîne nulle si que des 0.
tu reprends la partie while et tu teste S si ça commence par.
donc
If S<>"0000.000.00" then while (Left(S,1)="0") or (Left(S,1)=".") S=Mid(S,2) wend E,nd If
Pour l'autre sens
S ta chaîne Nombres(S)=split(S,".") Select case Ubound(Nombres) 0 : S="0000.000." & Formate(S,2) 1: S="0000." & Formate(Nombres(0),3) & "." & Nombres(1) 2:S=Formate(Nombres(0),4) & "." & Nombres(1) & "." & Nombres(2) else msgBox "Il y a une erreur" End case
Function Formate (N as string, F as Integer) as String While Len(N)<F N="0" & N Wend Formate=N End function
Non testée et surtout non optimisée.
Cela suppose que le formatage de la chaîne S est déjà bon dans les deux sens.
Il ne faut pas parler de nombre avec deux points décimaux mais de chaîne, les nombres XXXX.XXX.XX n'xsitent pas. On peut éventuellement créer une classe mais cela ne parait pas utile.
"alain" a écrit dans le message de news: 4417de0f$0$14282$
Merci pour vos lumières, je récidive..
Mais j'ai oublié de dire que mes chiffres peuvent avoir des valeurs différentes : 2542.012.22 ou 0000.012.01 ou 0000.000.12 pour obtenir 2542.012.22 ou 12.01 ou 12.
J'essai avec la fonction Format(MonNum, "&&&&.&&&.&&") C'est bon mais pour 0000.012.01 j'obtient en sortie .012.01 , il faudrait supprimer le point de gauche.
Et si vous avez le temps, il faudrait que je puisse faire l'inverse. A la saisie dans une zone text de 1 à 9 chiffres , formater mon chiffre comme cela : XXX.XXX.XX
Merci pour votre patience.........
Alain
"alain" a écrit dans le message de news: 44174c6d$0$21550$
Bonjour, je cherche à supprimer les premiers zéros de mon chiffre formaté : 0025.003.33 pour obtenir 25.003.33 Merci pour votre aide Alain
Si j'ai bien compris, seule la première partie est formatée et
éventuellement une chaîne nulle si que des 0.
tu reprends la partie while et tu teste S si ça commence par.
donc
If S<>"0000.000.00" then
while (Left(S,1)="0") or (Left(S,1)=".")
S=Mid(S,2)
wend
E,nd If
Pour l'autre sens
S ta chaîne
Nombres(S)=split(S,".")
Select case Ubound(Nombres)
0 : S="0000.000." & Formate(S,2)
1: S="0000." & Formate(Nombres(0),3) & "." & Nombres(1)
2:S=Formate(Nombres(0),4) & "." & Nombres(1) & "." & Nombres(2)
else msgBox "Il y a une erreur"
End case
Function Formate (N as string, F as Integer) as String
While Len(N)<F
N="0" & N
Wend
Formate=N
End function
Non testée et surtout non optimisée.
Cela suppose que le formatage de la chaîne S est déjà bon dans les deux
sens.
Il ne faut pas parler de nombre avec deux points décimaux mais de chaîne,
les nombres XXXX.XXX.XX n'xsitent pas.
On peut éventuellement créer une classe mais cela ne parait pas utile.
"alain" <alain@no_spam.fr> a écrit dans le message de news:
4417de0f$0$14282$626a54ce@news.free.fr...
Merci pour vos lumières, je récidive..
Mais j'ai oublié de dire que mes chiffres peuvent avoir des valeurs
différentes : 2542.012.22 ou 0000.012.01 ou 0000.000.12
pour obtenir
2542.012.22 ou 12.01 ou 12.
J'essai avec la fonction Format(MonNum, "&&&&.&&&.&&")
C'est bon mais pour 0000.012.01 j'obtient en sortie .012.01 , il faudrait
supprimer le point de gauche.
Et si vous avez le temps, il faudrait que je puisse faire l'inverse.
A la saisie dans une zone text de 1 à 9 chiffres , formater mon chiffre
comme cela : XXX.XXX.XX
Merci pour votre patience.........
Alain
"alain" <alain@no_spam.fr> a écrit dans le message de news:
44174c6d$0$21550$626a54ce@news.free.fr...
Bonjour,
je cherche à supprimer les premiers zéros de mon chiffre formaté :
0025.003.33 pour obtenir 25.003.33
Merci pour votre aide
Alain
Si j'ai bien compris, seule la première partie est formatée et éventuellement une chaîne nulle si que des 0.
tu reprends la partie while et tu teste S si ça commence par.
donc
If S<>"0000.000.00" then while (Left(S,1)="0") or (Left(S,1)=".") S=Mid(S,2) wend E,nd If
Pour l'autre sens
S ta chaîne Nombres(S)=split(S,".") Select case Ubound(Nombres) 0 : S="0000.000." & Formate(S,2) 1: S="0000." & Formate(Nombres(0),3) & "." & Nombres(1) 2:S=Formate(Nombres(0),4) & "." & Nombres(1) & "." & Nombres(2) else msgBox "Il y a une erreur" End case
Function Formate (N as string, F as Integer) as String While Len(N)<F N="0" & N Wend Formate=N End function
Non testée et surtout non optimisée.
Cela suppose que le formatage de la chaîne S est déjà bon dans les deux sens.
Il ne faut pas parler de nombre avec deux points décimaux mais de chaîne, les nombres XXXX.XXX.XX n'xsitent pas. On peut éventuellement créer une classe mais cela ne parait pas utile.
"alain" a écrit dans le message de news: 4417de0f$0$14282$
Merci pour vos lumières, je récidive..
Mais j'ai oublié de dire que mes chiffres peuvent avoir des valeurs différentes : 2542.012.22 ou 0000.012.01 ou 0000.000.12 pour obtenir 2542.012.22 ou 12.01 ou 12.
J'essai avec la fonction Format(MonNum, "&&&&.&&&.&&") C'est bon mais pour 0000.012.01 j'obtient en sortie .012.01 , il faudrait supprimer le point de gauche.
Et si vous avez le temps, il faudrait que je puisse faire l'inverse. A la saisie dans une zone text de 1 à 9 chiffres , formater mon chiffre comme cela : XXX.XXX.XX
Merci pour votre patience.........
Alain
"alain" a écrit dans le message de news: 44174c6d$0$21550$
Bonjour, je cherche à supprimer les premiers zéros de mon chiffre formaté : 0025.003.33 pour obtenir 25.003.33 Merci pour votre aide Alain
alain
Ok merci, je vais travailler sur le code Cordialement Alain
"Patrice Henrio" a écrit dans le message de news:
Si j'ai bien compris, seule la première partie est formatée et éventuellement une chaîne nulle si que des 0.
tu reprends la partie while et tu teste S si ça commence par.
donc
If S<>"0000.000.00" then while (Left(S,1)="0") or (Left(S,1)=".") S=Mid(S,2) wend E,nd If
Pour l'autre sens
S ta chaîne Nombres(S)=split(S,".") Select case Ubound(Nombres) 0 : S="0000.000." & Formate(S,2) 1: S="0000." & Formate(Nombres(0),3) & "." & Nombres(1) 2:S=Formate(Nombres(0),4) & "." & Nombres(1) & "." & Nombres(2) else msgBox "Il y a une erreur" End case
Function Formate (N as string, F as Integer) as String While Len(N)<F N="0" & N Wend Formate=N End function
Non testée et surtout non optimisée.
Cela suppose que le formatage de la chaîne S est déjà bon dans les deux sens.
Il ne faut pas parler de nombre avec deux points décimaux mais de chaîne, les nombres XXXX.XXX.XX n'xsitent pas. On peut éventuellement créer une classe mais cela ne parait pas utile.
"alain" a écrit dans le message de news: 4417de0f$0$14282$
Merci pour vos lumières, je récidive..
Mais j'ai oublié de dire que mes chiffres peuvent avoir des valeurs différentes : 2542.012.22 ou 0000.012.01 ou 0000.000.12 pour obtenir 2542.012.22 ou 12.01 ou 12.
J'essai avec la fonction Format(MonNum, "&&&&.&&&.&&") C'est bon mais pour 0000.012.01 j'obtient en sortie .012.01 , il faudrait supprimer le point de gauche.
Et si vous avez le temps, il faudrait que je puisse faire l'inverse. A la saisie dans une zone text de 1 à 9 chiffres , formater mon chiffre comme cela : XXX.XXX.XX
Merci pour votre patience.........
Alain
"alain" a écrit dans le message de news: 44174c6d$0$21550$
Bonjour, je cherche à supprimer les premiers zéros de mon chiffre formaté : 0025.003.33 pour obtenir 25.003.33 Merci pour votre aide Alain
Ok merci, je vais travailler sur le code
Cordialement Alain
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news: uL42d7BSGHA.256@TK2MSFTNGP14.phx.gbl...
Si j'ai bien compris, seule la première partie est formatée et
éventuellement une chaîne nulle si que des 0.
tu reprends la partie while et tu teste S si ça commence par.
donc
If S<>"0000.000.00" then
while (Left(S,1)="0") or (Left(S,1)=".")
S=Mid(S,2)
wend
E,nd If
Pour l'autre sens
S ta chaîne
Nombres(S)=split(S,".")
Select case Ubound(Nombres)
0 : S="0000.000." & Formate(S,2)
1: S="0000." & Formate(Nombres(0),3) & "." & Nombres(1)
2:S=Formate(Nombres(0),4) & "." & Nombres(1) & "." & Nombres(2)
else msgBox "Il y a une erreur"
End case
Function Formate (N as string, F as Integer) as String
While Len(N)<F
N="0" & N
Wend
Formate=N
End function
Non testée et surtout non optimisée.
Cela suppose que le formatage de la chaîne S est déjà bon dans les deux
sens.
Il ne faut pas parler de nombre avec deux points décimaux mais de chaîne,
les nombres XXXX.XXX.XX n'xsitent pas.
On peut éventuellement créer une classe mais cela ne parait pas utile.
"alain" <alain@no_spam.fr> a écrit dans le message de news:
4417de0f$0$14282$626a54ce@news.free.fr...
Merci pour vos lumières, je récidive..
Mais j'ai oublié de dire que mes chiffres peuvent avoir des valeurs
différentes : 2542.012.22 ou 0000.012.01 ou 0000.000.12
pour obtenir
2542.012.22 ou 12.01 ou 12.
J'essai avec la fonction Format(MonNum, "&&&&.&&&.&&")
C'est bon mais pour 0000.012.01 j'obtient en sortie .012.01 , il faudrait
supprimer le point de gauche.
Et si vous avez le temps, il faudrait que je puisse faire l'inverse.
A la saisie dans une zone text de 1 à 9 chiffres , formater mon chiffre
comme cela : XXX.XXX.XX
Merci pour votre patience.........
Alain
"alain" <alain@no_spam.fr> a écrit dans le message de news:
44174c6d$0$21550$626a54ce@news.free.fr...
Bonjour,
je cherche à supprimer les premiers zéros de mon chiffre formaté :
0025.003.33 pour obtenir 25.003.33
Merci pour votre aide
Alain
Ok merci, je vais travailler sur le code Cordialement Alain
"Patrice Henrio" a écrit dans le message de news:
Si j'ai bien compris, seule la première partie est formatée et éventuellement une chaîne nulle si que des 0.
tu reprends la partie while et tu teste S si ça commence par.
donc
If S<>"0000.000.00" then while (Left(S,1)="0") or (Left(S,1)=".") S=Mid(S,2) wend E,nd If
Pour l'autre sens
S ta chaîne Nombres(S)=split(S,".") Select case Ubound(Nombres) 0 : S="0000.000." & Formate(S,2) 1: S="0000." & Formate(Nombres(0),3) & "." & Nombres(1) 2:S=Formate(Nombres(0),4) & "." & Nombres(1) & "." & Nombres(2) else msgBox "Il y a une erreur" End case
Function Formate (N as string, F as Integer) as String While Len(N)<F N="0" & N Wend Formate=N End function
Non testée et surtout non optimisée.
Cela suppose que le formatage de la chaîne S est déjà bon dans les deux sens.
Il ne faut pas parler de nombre avec deux points décimaux mais de chaîne, les nombres XXXX.XXX.XX n'xsitent pas. On peut éventuellement créer une classe mais cela ne parait pas utile.
"alain" a écrit dans le message de news: 4417de0f$0$14282$
Merci pour vos lumières, je récidive..
Mais j'ai oublié de dire que mes chiffres peuvent avoir des valeurs différentes : 2542.012.22 ou 0000.012.01 ou 0000.000.12 pour obtenir 2542.012.22 ou 12.01 ou 12.
J'essai avec la fonction Format(MonNum, "&&&&.&&&.&&") C'est bon mais pour 0000.012.01 j'obtient en sortie .012.01 , il faudrait supprimer le point de gauche.
Et si vous avez le temps, il faudrait que je puisse faire l'inverse. A la saisie dans une zone text de 1 à 9 chiffres , formater mon chiffre comme cela : XXX.XXX.XX
Merci pour votre patience.........
Alain
"alain" a écrit dans le message de news: 44174c6d$0$21550$
Bonjour, je cherche à supprimer les premiers zéros de mon chiffre formaté : 0025.003.33 pour obtenir 25.003.33 Merci pour votre aide Alain