conversion d'un nombre scientifique en un nombre standard

tigeline001

XLDnaute Occasionnel
Bonjour tout le monde
je veux convertir un nombre scientifique(1,234E+001) en nombre Standard en VBA
j'ai utlisé l'instruction suivante:
Format(nombre,"Standard")
Mais le résultat est toujours sous forme scientifique.je veux votre aide
Merci
 

Dranreb

XLDnaute Barbatruc
Re : conversion d'un nombre scientifique en un nombre standard

Bonjour.
Que contient exactement votre cellule ?
Parce que un 'nombre scientifique' ça n'existe pas !
Ce qui existe d'utilisé par Excel c'est seulement Double, String, Currency, Date, Boolean, Error, Empty
Vous pouvez le savoir en faisant MsgBox TypeName([A3].Value)
Changer le format de cellule n'aurait aucun effet sur l'apparence d'une valeur String.
Ce qu'il faudrait surtout, c'est convertir celle ci en Double: With [A3]: If TypeName(.Value) = "String" Then .Value = CDbl(.Value): End With
 
Dernière édition:

Docmarti

XLDnaute Occasionnel
Re : conversion d'un nombre scientifique en un nombre standard

Bonjour.

Code:
Sub ObtenirLeFormatNumeriqueStandard()

Dim t(4)

t(1) = "1,234E+001"
t(2) = "1,234E+1"
t(3) = "1,234E+0"
t(4) = "1,234"

For i = 1 To 4
 Set c = Cells(i, 1)
 c.NumberFormat = "@"
 c.Value = t(i)
Next
 
For i = 1 To 4
 Set c = Cells(i, 1)
  
 'Forcer le format numerique standard
  c.Offset(, 2).NumberFormat = "0.00"
 
  c.Offset(, 2).Value = Cells(i, 1).Value
  
Next

End Sub



Sub ForcerLeFormatScientifique()

Dim t(4)

t(1) = "1,234E+001"
t(2) = "1,234E+1"
t(3) = "1,234E+0"
t(4) = "1,234"

For i = 1 To 4
 Set c = Cells(i, 1)
 c.NumberFormat = "@"
 c.Value = t(i)
Next
 
For i = 1 To 4
 Set c = Cells(i, 1)
 
 'Forcer le format scientifique
 If InStr(UCase(Cells(i, 1)), "E") Then
  c.Offset(, 1).NumberFormat = "General"
 Else
  c.Offset(, 1).NumberFormat = "0.00E+00"
 End If
 c.Offset(, 1).Value = Cells(i, 1).Value
 
Next
End Sub


Cordialement

Docmarti
 

Discussions similaires

Statistiques des forums

Discussions
314 663
Messages
2 111 674
Membres
111 256
dernier inscrit
cvwvoizhjf