Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

M12

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

Bonjour,

En supposant que ton nombre se trouve sur A3

Code:
Sub test()
Range("a3").Select
Selection.NumberFormat = "0.00"
End Sub
 

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

Réponses
4
Affichages
200
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…