Format mode ingenieur pour VBA

Résolu
uid25348 Messages postés 4 Statut Membre -  
 anonymous -
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

7 réponses

  1. anonymous
     
    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
  2. uid25348 Messages postés 4 Statut Membre
     
    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
    1. drine
       
      tu peux essayer quelque chose du genre ###,00E+00
      ca marche sous excel...
      0
  3. VBAForEngineers
     
    tu sera obligé de créer une fonction qui force l'exposant à être un mulitple de 3!
    0
  4. drine
     
    tu peux essayer quelque chose du genre ###,00E+00
    ca marche sous excel...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ravenous
     
    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
  7. Lust Messages postés 243 Statut Membre 123
     
    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
  8. Lust Messages postés 243 Statut Membre 123
     
    Ben désolé, sais pas quoi c'est ca "Ingénieur"
    -1