Bonjour,
Je travaille sur un projet qui est en VB6. Vu sa taille, il n'a pas
encore été converti en .NET par manque de temps
Mon problème est que j'ai besoin d'afficher en VB (pas dans Excel),
des nombres au format ingénieur (l'exposant est multiple de 3), donc
de la forme :
123.0E+0
12.3E+0
123.5E+3
123.5E+6
123.0E-3
123.5E-3
123.5E+6
Je ne sais pas comment paramétrer la fonction Format de VB.
Le "###.0E+0" utilisé dans Excel ne fonctionne pas.
Bonjour,
Je travaille sur un projet qui est en VB6. Vu sa taille, il n'a pas
encore été converti en .NET par manque de temps
Mon problème est que j'ai besoin d'afficher en VB (pas dans Excel),
des nombres au format ingénieur (l'exposant est multiple de 3), donc
de la forme :
123.0E+0
12.3E+0
123.5E+3
123.5E+6
123.0E-3
123.5E-3
123.5E+6
Je ne sais pas comment paramétrer la fonction Format de VB.
Le "###.0E+0" utilisé dans Excel ne fonctionne pas.
Bonjour,
Je travaille sur un projet qui est en VB6. Vu sa taille, il n'a pas
encore été converti en .NET par manque de temps
Mon problème est que j'ai besoin d'afficher en VB (pas dans Excel),
des nombres au format ingénieur (l'exposant est multiple de 3), donc
de la forme :
123.0E+0
12.3E+0
123.5E+3
123.5E+6
123.0E-3
123.5E-3
123.5E+6
Je ne sais pas comment paramétrer la fonction Format de VB.
Le "###.0E+0" utilisé dans Excel ne fonctionne pas.
Christian wrote:
> Bonjour,
>
> Je travaille sur un projet qui est en VB6. Vu sa taille, il n'a pas
> encore été converti en .NET par manque de temps
>
> Mon problème est que j'ai besoin d'afficher en VB (pas dans Excel),
> des nombres au format ingénieur (l'exposant est multiple de 3), donc
> de la forme :
>
> 123.0E+0
> 12.3E+0
> 123.5E+3
> 123.5E+6
> 123.0E-3
> 123.5E-3
> 123.5E+6
>
> Je ne sais pas comment paramétrer la fonction Format de VB.
> Le "###.0E+0" utilisé dans Excel ne fonctionne pas.
Hello,
tu es sur que ça ne fonctionne pas ?
Car j'ai essayé exactement comem tu l'indiques et ça donne les
résultats attendus:
Debug.Print Format$( N, "###.0E+0")
Tu es sur de tes entrées ?
Cordialement,
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Christian wrote:
> Bonjour,
>
> Je travaille sur un projet qui est en VB6. Vu sa taille, il n'a pas
> encore été converti en .NET par manque de temps
>
> Mon problème est que j'ai besoin d'afficher en VB (pas dans Excel),
> des nombres au format ingénieur (l'exposant est multiple de 3), donc
> de la forme :
>
> 123.0E+0
> 12.3E+0
> 123.5E+3
> 123.5E+6
> 123.0E-3
> 123.5E-3
> 123.5E+6
>
> Je ne sais pas comment paramétrer la fonction Format de VB.
> Le "###.0E+0" utilisé dans Excel ne fonctionne pas.
Hello,
tu es sur que ça ne fonctionne pas ?
Car j'ai essayé exactement comem tu l'indiques et ça donne les
résultats attendus:
Debug.Print Format$( N, "###.0E+0")
Tu es sur de tes entrées ?
Cordialement,
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Christian wrote:
> Bonjour,
>
> Je travaille sur un projet qui est en VB6. Vu sa taille, il n'a pas
> encore été converti en .NET par manque de temps
>
> Mon problème est que j'ai besoin d'afficher en VB (pas dans Excel),
> des nombres au format ingénieur (l'exposant est multiple de 3), donc
> de la forme :
>
> 123.0E+0
> 12.3E+0
> 123.5E+3
> 123.5E+6
> 123.0E-3
> 123.5E-3
> 123.5E+6
>
> Je ne sais pas comment paramétrer la fonction Format de VB.
> Le "###.0E+0" utilisé dans Excel ne fonctionne pas.
Hello,
tu es sur que ça ne fonctionne pas ?
Car j'ai essayé exactement comem tu l'indiques et ça donne les
résultats attendus:
Debug.Print Format$( N, "###.0E+0")
Tu es sur de tes entrées ?
Cordialement,
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Oui oui je suis sur que ça ne fonctionne pas.
Par exemple Format$(0.001, "###.0E+0") donne 100.0E-5 ce qui est au for mat
scientifique mais pas au format ingénieur.
Exemple de résultats entre les deux formats :
Valeurs Scientifique Ingénieur
1 1.00E+00 1.0E+0
100 1.00E+02 100.0E+0
10000 1.00E+04 10.0E+3
100000 1.00E+05 100.0E+3
0.1 1.00E-01 100.0E-3
0.001 1.00E-03 1.0E-3
0.00001 1.00E-05 10.0E-6
0.0000001 1.00E-07 100.0E-9
Je voudrais donc les résultats comme dans la colonne Ingénieu r.
Merci pour ton aide.
Christian
"Jean-marc" wrote:Christian wrote:Bonjour,
Je travaille sur un projet qui est en VB6. Vu sa taille, il n'a pas
encore été converti en .NET par manque de temps
Mon problème est que j'ai besoin d'afficher en VB (pas dans Exce l),
des nombres au format ingénieur (l'exposant est multiple de 3), donc
de la forme :
123.0E+0
12.3E+0
123.5E+3
123.5E+6
123.0E-3
123.5E-3
123.5E+6
Je ne sais pas comment paramétrer la fonction Format de VB.
Le "###.0E+0" utilisé dans Excel ne fonctionne pas.
Hello,
tu es sur que ça ne fonctionne pas ?
Car j'ai essayé exactement comem tu l'indiques et ça donne l es
résultats attendus:
Debug.Print Format$( N, "###.0E+0")
Tu es sur de tes entrées ?
Cordialement,
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Oui oui je suis sur que ça ne fonctionne pas.
Par exemple Format$(0.001, "###.0E+0") donne 100.0E-5 ce qui est au for mat
scientifique mais pas au format ingénieur.
Exemple de résultats entre les deux formats :
Valeurs Scientifique Ingénieur
1 1.00E+00 1.0E+0
100 1.00E+02 100.0E+0
10000 1.00E+04 10.0E+3
100000 1.00E+05 100.0E+3
0.1 1.00E-01 100.0E-3
0.001 1.00E-03 1.0E-3
0.00001 1.00E-05 10.0E-6
0.0000001 1.00E-07 100.0E-9
Je voudrais donc les résultats comme dans la colonne Ingénieu r.
Merci pour ton aide.
Christian
"Jean-marc" wrote:
Christian wrote:
Bonjour,
Je travaille sur un projet qui est en VB6. Vu sa taille, il n'a pas
encore été converti en .NET par manque de temps
Mon problème est que j'ai besoin d'afficher en VB (pas dans Exce l),
des nombres au format ingénieur (l'exposant est multiple de 3), donc
de la forme :
123.0E+0
12.3E+0
123.5E+3
123.5E+6
123.0E-3
123.5E-3
123.5E+6
Je ne sais pas comment paramétrer la fonction Format de VB.
Le "###.0E+0" utilisé dans Excel ne fonctionne pas.
Hello,
tu es sur que ça ne fonctionne pas ?
Car j'ai essayé exactement comem tu l'indiques et ça donne l es
résultats attendus:
Debug.Print Format$( N, "###.0E+0")
Tu es sur de tes entrées ?
Cordialement,
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Oui oui je suis sur que ça ne fonctionne pas.
Par exemple Format$(0.001, "###.0E+0") donne 100.0E-5 ce qui est au for mat
scientifique mais pas au format ingénieur.
Exemple de résultats entre les deux formats :
Valeurs Scientifique Ingénieur
1 1.00E+00 1.0E+0
100 1.00E+02 100.0E+0
10000 1.00E+04 10.0E+3
100000 1.00E+05 100.0E+3
0.1 1.00E-01 100.0E-3
0.001 1.00E-03 1.0E-3
0.00001 1.00E-05 10.0E-6
0.0000001 1.00E-07 100.0E-9
Je voudrais donc les résultats comme dans la colonne Ingénieu r.
Merci pour ton aide.
Christian
"Jean-marc" wrote:Christian wrote:Bonjour,
Je travaille sur un projet qui est en VB6. Vu sa taille, il n'a pas
encore été converti en .NET par manque de temps
Mon problème est que j'ai besoin d'afficher en VB (pas dans Exce l),
des nombres au format ingénieur (l'exposant est multiple de 3), donc
de la forme :
123.0E+0
12.3E+0
123.5E+3
123.5E+6
123.0E-3
123.5E-3
123.5E+6
Je ne sais pas comment paramétrer la fonction Format de VB.
Le "###.0E+0" utilisé dans Excel ne fonctionne pas.
Hello,
tu es sur que ça ne fonctionne pas ?
Car j'ai essayé exactement comem tu l'indiques et ça donne l es
résultats attendus:
Debug.Print Format$( N, "###.0E+0")
Tu es sur de tes entrées ?
Cordialement,
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Bonjour,
En fait le format "###.0E+0" ne fonctionne que si le premier chiffre
significatif est aligné sur une puissance de 10^(3xn-1). (je ne suis pas
sur qu'on puisse dire comme ça :) )
enfin pour expliciter:
Format$(0.123, "###.0E+0") va donner 123.0E-3
(Ok - premier chiffre significatif aligné sur 10-1 = 10^(3x0-1))
Format$(0.0123, "###.0E+0") va donner 123.0E-4
(Pas Ok - premier chiffre significatif aligné sur 10-2 = 10^(3x0-2))
Format$(123000, "###.0E+0") va donner 123.0E+3
(Ok - premier chiffre significatif aligné sur 105 = 10^(3x2-1))
Format$(12300, "###.0E+0") va donner 123.0E+2
(Pas Ok - premier chiffre significatif aligné sur 104 = 10^(3x2-2))
Il n'existe pas à ma connaissance de moyen de réaliser une notation
d'ingénieur directement en VB, il va falloir que tu implémentes toi-même
une fonction pour faire cela.
Vincent Guichard
Christian a écrit :
> Oui oui je suis sur que ça ne fonctionne pas.
> Par exemple Format$(0.001, "###.0E+0") donne 100.0E-5 ce qui est au format
> scientifique mais pas au format ingénieur.
> Exemple de résultats entre les deux formats :
>
> Valeurs Scientifique Ingénieur
> 1 1.00E+00 1.0E+0
> 100 1.00E+02 100.0E+0
> 10000 1.00E+04 10.0E+3
> 100000 1.00E+05 100.0E+3
> 0.1 1.00E-01 100.0E-3
> 0.001 1.00E-03 1.0E-3
> 0.00001 1.00E-05 10.0E-6
> 0.0000001 1.00E-07 100.0E-9
>
> Je voudrais donc les résultats comme dans la colonne Ingénieur.
>
> Merci pour ton aide.
> Christian
>
> "Jean-marc" wrote:
>
>> Christian wrote:
>>> Bonjour,
>>>
>>> Je travaille sur un projet qui est en VB6. Vu sa taille, il n'a pas
>>> encore été converti en .NET par manque de temps
>>>
>>> Mon problème est que j'ai besoin d'afficher en VB (pas dans Excel),
>>> des nombres au format ingénieur (l'exposant est multiple de 3), donc
>>> de la forme :
>>>
>>> 123.0E+0
>>> 12.3E+0
>>> 123.5E+3
>>> 123.5E+6
>>> 123.0E-3
>>> 123.5E-3
>>> 123.5E+6
>>>
>>> Je ne sais pas comment paramétrer la fonction Format de VB.
>>> Le "###.0E+0" utilisé dans Excel ne fonctionne pas.
>> Hello,
>>
>> tu es sur que ça ne fonctionne pas ?
>> Car j'ai essayé exactement comem tu l'indiques et ça donne les
>> résultats attendus:
>>
>> Debug.Print Format$( N, "###.0E+0")
>>
>> Tu es sur de tes entrées ?
>>
>> Cordialement,
>>
>> --
>> Jean-marc Noury (jean_marc_n2)
>> Microsoft MVP - Visual Basic
>> FAQ VB: http://faq.vb.free.fr/
>> mailto: remove '_no_spam_' ;
>>
>>
>>
>>
>>
Bonjour,
En fait le format "###.0E+0" ne fonctionne que si le premier chiffre
significatif est aligné sur une puissance de 10^(3xn-1). (je ne suis pas
sur qu'on puisse dire comme ça :) )
enfin pour expliciter:
Format$(0.123, "###.0E+0") va donner 123.0E-3
(Ok - premier chiffre significatif aligné sur 10-1 = 10^(3x0-1))
Format$(0.0123, "###.0E+0") va donner 123.0E-4
(Pas Ok - premier chiffre significatif aligné sur 10-2 = 10^(3x0-2))
Format$(123000, "###.0E+0") va donner 123.0E+3
(Ok - premier chiffre significatif aligné sur 105 = 10^(3x2-1))
Format$(12300, "###.0E+0") va donner 123.0E+2
(Pas Ok - premier chiffre significatif aligné sur 104 = 10^(3x2-2))
Il n'existe pas à ma connaissance de moyen de réaliser une notation
d'ingénieur directement en VB, il va falloir que tu implémentes toi-même
une fonction pour faire cela.
Vincent Guichard
Christian a écrit :
> Oui oui je suis sur que ça ne fonctionne pas.
> Par exemple Format$(0.001, "###.0E+0") donne 100.0E-5 ce qui est au format
> scientifique mais pas au format ingénieur.
> Exemple de résultats entre les deux formats :
>
> Valeurs Scientifique Ingénieur
> 1 1.00E+00 1.0E+0
> 100 1.00E+02 100.0E+0
> 10000 1.00E+04 10.0E+3
> 100000 1.00E+05 100.0E+3
> 0.1 1.00E-01 100.0E-3
> 0.001 1.00E-03 1.0E-3
> 0.00001 1.00E-05 10.0E-6
> 0.0000001 1.00E-07 100.0E-9
>
> Je voudrais donc les résultats comme dans la colonne Ingénieur.
>
> Merci pour ton aide.
> Christian
>
> "Jean-marc" wrote:
>
>> Christian wrote:
>>> Bonjour,
>>>
>>> Je travaille sur un projet qui est en VB6. Vu sa taille, il n'a pas
>>> encore été converti en .NET par manque de temps
>>>
>>> Mon problème est que j'ai besoin d'afficher en VB (pas dans Excel),
>>> des nombres au format ingénieur (l'exposant est multiple de 3), donc
>>> de la forme :
>>>
>>> 123.0E+0
>>> 12.3E+0
>>> 123.5E+3
>>> 123.5E+6
>>> 123.0E-3
>>> 123.5E-3
>>> 123.5E+6
>>>
>>> Je ne sais pas comment paramétrer la fonction Format de VB.
>>> Le "###.0E+0" utilisé dans Excel ne fonctionne pas.
>> Hello,
>>
>> tu es sur que ça ne fonctionne pas ?
>> Car j'ai essayé exactement comem tu l'indiques et ça donne les
>> résultats attendus:
>>
>> Debug.Print Format$( N, "###.0E+0")
>>
>> Tu es sur de tes entrées ?
>>
>> Cordialement,
>>
>> --
>> Jean-marc Noury (jean_marc_n2)
>> Microsoft MVP - Visual Basic
>> FAQ VB: http://faq.vb.free.fr/
>> mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
>>
>>
>>
>>
>>
Bonjour,
En fait le format "###.0E+0" ne fonctionne que si le premier chiffre
significatif est aligné sur une puissance de 10^(3xn-1). (je ne suis pas
sur qu'on puisse dire comme ça :) )
enfin pour expliciter:
Format$(0.123, "###.0E+0") va donner 123.0E-3
(Ok - premier chiffre significatif aligné sur 10-1 = 10^(3x0-1))
Format$(0.0123, "###.0E+0") va donner 123.0E-4
(Pas Ok - premier chiffre significatif aligné sur 10-2 = 10^(3x0-2))
Format$(123000, "###.0E+0") va donner 123.0E+3
(Ok - premier chiffre significatif aligné sur 105 = 10^(3x2-1))
Format$(12300, "###.0E+0") va donner 123.0E+2
(Pas Ok - premier chiffre significatif aligné sur 104 = 10^(3x2-2))
Il n'existe pas à ma connaissance de moyen de réaliser une notation
d'ingénieur directement en VB, il va falloir que tu implémentes toi-même
une fonction pour faire cela.
Vincent Guichard
Christian a écrit :
> Oui oui je suis sur que ça ne fonctionne pas.
> Par exemple Format$(0.001, "###.0E+0") donne 100.0E-5 ce qui est au format
> scientifique mais pas au format ingénieur.
> Exemple de résultats entre les deux formats :
>
> Valeurs Scientifique Ingénieur
> 1 1.00E+00 1.0E+0
> 100 1.00E+02 100.0E+0
> 10000 1.00E+04 10.0E+3
> 100000 1.00E+05 100.0E+3
> 0.1 1.00E-01 100.0E-3
> 0.001 1.00E-03 1.0E-3
> 0.00001 1.00E-05 10.0E-6
> 0.0000001 1.00E-07 100.0E-9
>
> Je voudrais donc les résultats comme dans la colonne Ingénieur.
>
> Merci pour ton aide.
> Christian
>
> "Jean-marc" wrote:
>
>> Christian wrote:
>>> Bonjour,
>>>
>>> Je travaille sur un projet qui est en VB6. Vu sa taille, il n'a pas
>>> encore été converti en .NET par manque de temps
>>>
>>> Mon problème est que j'ai besoin d'afficher en VB (pas dans Excel),
>>> des nombres au format ingénieur (l'exposant est multiple de 3), donc
>>> de la forme :
>>>
>>> 123.0E+0
>>> 12.3E+0
>>> 123.5E+3
>>> 123.5E+6
>>> 123.0E-3
>>> 123.5E-3
>>> 123.5E+6
>>>
>>> Je ne sais pas comment paramétrer la fonction Format de VB.
>>> Le "###.0E+0" utilisé dans Excel ne fonctionne pas.
>> Hello,
>>
>> tu es sur que ça ne fonctionne pas ?
>> Car j'ai essayé exactement comem tu l'indiques et ça donne les
>> résultats attendus:
>>
>> Debug.Print Format$( N, "###.0E+0")
>>
>> Tu es sur de tes entrées ?
>>
>> Cordialement,
>>
>> --
>> Jean-marc Noury (jean_marc_n2)
>> Microsoft MVP - Visual Basic
>> FAQ VB: http://faq.vb.free.fr/
>> mailto: remove '_no_spam_' ;
>>
>>
>>
>>
>>
Bonjour,
J'ai la solution à mon problème qui m'a été donnée par un MVP du
forum US.
Je vous mets le code ci-dessous au cas où quelqu'un en aurait besoin
ça peut être utile.
Pour info, le paramètre DecimalPlaces permet de déterminer le nombre
de chiffres après la virgule.
Function FormatEngineering(Number As Variant, Optional DecimalPlaces
As Long = 1) As String
Dim Exponent As Long
Dim Parts() As String
Parts = Split(Format(Number, "0.0#############E+0"), "E")
Exponent = 3 * Int(Parts(1) / 3)
FormatEngineering = Format(Parts(0) * 10 ^ (Parts(1) - Exponent), _
"0." & String(DecimalPlaces, "0")) & _
"E" & Format(Exponent, "+0;-0")
End Function
Bonjour,
J'ai la solution à mon problème qui m'a été donnée par un MVP du
forum US.
Je vous mets le code ci-dessous au cas où quelqu'un en aurait besoin
ça peut être utile.
Pour info, le paramètre DecimalPlaces permet de déterminer le nombre
de chiffres après la virgule.
Function FormatEngineering(Number As Variant, Optional DecimalPlaces
As Long = 1) As String
Dim Exponent As Long
Dim Parts() As String
Parts = Split(Format(Number, "0.0#############E+0"), "E")
Exponent = 3 * Int(Parts(1) / 3)
FormatEngineering = Format(Parts(0) * 10 ^ (Parts(1) - Exponent), _
"0." & String(DecimalPlaces, "0")) & _
"E" & Format(Exponent, "+0;-0")
End Function
Bonjour,
J'ai la solution à mon problème qui m'a été donnée par un MVP du
forum US.
Je vous mets le code ci-dessous au cas où quelqu'un en aurait besoin
ça peut être utile.
Pour info, le paramètre DecimalPlaces permet de déterminer le nombre
de chiffres après la virgule.
Function FormatEngineering(Number As Variant, Optional DecimalPlaces
As Long = 1) As String
Dim Exponent As Long
Dim Parts() As String
Parts = Split(Format(Number, "0.0#############E+0"), "E")
Exponent = 3 * Int(Parts(1) / 3)
FormatEngineering = Format(Parts(0) * 10 ^ (Parts(1) - Exponent), _
"0." & String(DecimalPlaces, "0")) & _
"E" & Format(Exponent, "+0;-0")
End Function