Format mode ingenieur pour VBA

Résolu/Fermé
uid25348 Messages postés 4 Date d'inscription lundi 12 janvier 2004 Statut Membre Dernière intervention 28 septembre 2005 - 27 sept. 2005 à 14:06
 anonymous - 16 nov. 2009 à 12:47
Bonjour
Quelqu'un peut il me dire comment fait on pour afficher dans une variable string un nombre au format ingenieur ? multiple de 3 .
Par exemple : je veux afficher
200000 sous la forme de 200 E+3
ou 0.01 sous forme 10 E -3
J'ai essayé avec format(var,"##.##E+") ,cela fonctionne mais ce n'est pas au multiple de 3 , E+3 ou E+6 ou E-6 ect ...
Merci d'avance pour votre réponse
A voir également:

7 réponses

Je me suis posé la question, Pas de réponses simple et rapide sur le Net,
Alors après la bataille certes, mais quand même:

La réponse est :
##0,0E+0

Les deux "#" avant le premier "0" sert à dire espace réservé pour deux chiffres. Ici, on aura donc des multiples de milliers. !!!
Le ",0" est le nombre de chiffres après la virgule (autant qu'on veut).
Le E+ c'est pour l'affichage scientifique avec le signe.
Le dernier "0" c'est le nombre de chiffres de l'exposant (autant qu'on veut).

Salutation.
3
uid25348 Messages postés 4 Date d'inscription lundi 12 janvier 2004 Statut Membre Dernière intervention 28 septembre 2005
28 sept. 2005 à 08:48
Bonjour LUST et merci pour ta réponse
Mais cela ne me suffit pas , il faut que le format de sortie soit toujours en mode ingenieur .C'est à dire un multiple de 3 . Dans ton example format( 20000,"0.00E+")
ton resultat est 2,00E+4
et moi je veux que cela sorte sous forme 20,00E+3
pour 2000 je veux 2,00 E+3
pour 100 je veux 100 E+0
pour 0.05 je veux 50,00E-3
Il faut d'exposanr E soit toujours un multiple de 3 .
soit E+3 ou E+6 ou E-12 ou E-9 etc
Si tu as une solution Merci d'avance
0
tu peux essayer quelque chose du genre ###,00E+00
ca marche sous excel...
0
VBAForEngineers
25 sept. 2006 à 11:07
tu sera obligé de créer une fonction qui force l'exposant à être un mulitple de 3!
0
tu peux essayer quelque chose du genre ###,00E+00
ca marche sous excel...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Perso j'ai trouvé ça sur internet :

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

Je ne l'ai pas testé car je n'y connais rien en macro Excel mais je cherche aussi à avoir ce type d'affichage donc je vais m'y mettre !
0
Lust Messages postés 243 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 12 septembre 2007 123
28 sept. 2005 à 04:02
Ca marche, moi j'ai essayé ça dans la fenêtre d'execution :

?format(20000,"0.00E+")
2,00E+4


En procédant de la sorte :

Public Function strIngenieur(ByVal dblVar As Double) As String
strIngenieur = Format(dblVar, "0.00E+")
End Function

Ca fonctionne :

?strIngenieur(2000000000)
2,00E+9

Voila
-1
Lust Messages postés 243 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 12 septembre 2007 123
28 sept. 2005 à 14:41
Ben désolé, sais pas quoi c'est ca "Ingénieur"
-1