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

XL 2016 VBA - Valeur 1.0 donne 1

Remteyss

XLDnaute Junior
Bonjour le forum,

Quelqu'un saurait t-il me dire pourquoi lorsque l'on donne une valeur String "1.0" à une cellule en VBA, alors la valeur 1 apparaît ?

VB:
Sub test()
    ActiveWorkbook.Worksheets("Feuil1").Cells(1, 1).Value = "1.0"
End Sub

Alors que si on écrit directement "1.0" dans la cellule, cela affiche bien 1.0 ?

Merci par avance
 
Solution
Bonjour.
Je pense que la cellule A1 de la Feuil1 a un format Standard et que dans ce cas Excel se sent autorisé à y mettre autre chose que ce qu'on lui dit d'y mettre, ce que personnellement je déplore. Ainsi donc s'il s'agit d'un texte convertible en nombre il effectue préalablement cette conversion. Après, ce nombre y est affichée selon le format Standard.
Édition: Cependant si vous mettiez une apostrophe au début de la constante String il l'enregistrerait toujours en texte.

Dranreb

XLDnaute Barbatruc
Bonjour.
Je pense que la cellule A1 de la Feuil1 a un format Standard et que dans ce cas Excel se sent autorisé à y mettre autre chose que ce qu'on lui dit d'y mettre, ce que personnellement je déplore. Ainsi donc s'il s'agit d'un texte convertible en nombre il effectue préalablement cette conversion. Après, ce nombre y est affichée selon le format Standard.
Édition: Cependant si vous mettiez une apostrophe au début de la constante String il l'enregistrerait toujours en texte.
 
Dernière édition:

Remteyss

XLDnaute Junior
D'accord je vois !
Merci à vous deux @pierrejean et @Dranreb
Après modification, ça fonctionne !

Voici le code modifié si ça peut servir :

VB:
Sub test()
    With ActiveWorkbook.Worksheets("Feuil1").Cells(1, 1)
        .NumberFormat ="@"
        .Value = "1.0"
    End with
End Sub

Bonne fin de journée
 

Discussions similaires

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