Valeur en dollars

Résolu
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 - 28 avril 2007 à 17:37
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 - 28 avril 2007 à 20:36
Bonjour,
J'ai un problème de technique qualité



Dans mon fichier excel, dans la colone "DE", les montants sont en dollars, mais dans mon TextBox, ils sont en centième.

EX: Voilà le script:

TextBox77 = Range("DE" & Ligne) suite ;a une rechercheV.

Si dans le fichier excel la célule contient la somme de 0.04, dans le TextBox, il me marque 0.0375.

Comment faire pour qu'il reconnaisse le format de la célule ou du moins, qui me donne la réponse 0.04 comme dans 0.04$ 

7 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 avril 2007 à 18:03
Tu lis, oui ?
Ce n'est pas la valeur de ta textbox, qu'il convient de modifier, mais bel et bien celle réellement inscrite dans ta cellule (un autre fois : le format de présentation ne modifie que la présentation, ... pas la valeur elle-même).
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 avril 2007 à 20:21
En A1, j'écris 3,2576
Je modifie l'affichage à 1 décimale, ce qui me donne 3,3

Dans un UserForm, j'écris
TextBox1 = Range("A1")   ce qui m'affiche 3,2576

j'écris
TextBox1 = Format(Range("A1"), Range("A1").NumberFormat)
qui m'affiche 3,3

J'ai donc bien 3,3 comme valeur affiché, mais la valeur réelle sera toujours 3,2576 comme le spécifie JMF

Maintenant, si tu veux que le chiffre du Textbox soit vraiment 3,3  , il faudra le transformer réellement et non pas simplement son affichage.

MPi
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 avril 2007 à 17:42
Bonjour,

T'as pas une petite idée ?
Moi oui, bien que ne connaissant rien à VBA :

Un format d'affichage (dans ta cellule) ne modifie en rien la valeur gardée en mémoire et donc, quand tu relis ce qu'il y a dans ta cellule, VBA relit la valeur en mémoire et non celle seulement affichée pour des raisons de présentation ...
Que te faut-il donc faire ? Ben... traiter réellement la valeur plutôt que de contenter d'en modifier la présentation.
0
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 3
28 avril 2007 à 18:00
J'ai essayé avec TextBox77.Text = Range("DE" & Ligne)

Mais pas de résultat.

Je continue à chercher.
0

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

Posez votre question
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 3
28 avril 2007 à 18:33
J'ai trouvé,

Private Sub TextBox77_Change()
Dim MaVal As String
   
On Local Error Resume Next

MaVal = TextBox77.Text
If Not Right(MaVal, 1) = " " Then
    TextBox77.Text = MaVal & " "
Else
    If Not Right(Mid(MaVal, 1, Len(MaVal) - 1), 1) = "." Then
        TextBox77.Text = Round(CDbl(Mid(MaVal, 1, Len(MaVal) - 1)), 2) & " "
    End If
End If
TextBox77.SelStart = Len(TextBox77.Text) - 1
End Sub

Merci !
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 avril 2007 à 19:14
Ouais...
et en vus tu acceptes ta propre réponse !!!
Tu sais ce que tu as fait là, oui ?
Tu as simplement enrobé une erreur de papier doré !
Tu devrais aller voir ce qui se passe (conseil avisé) dans ta feuille excel de calcul en :

1) addtitionnant par formule une range contenant de telles cellules
2) en faisant manuellement le calcul
et
3) en découvrant que tes 2 résultats sont différents !
0
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 3
28 avril 2007 à 20:36
Super, je viens de l'essayer et sa fonctionne très bien. 

Merci beaucoup, je vais utiliser ça à la place de mon idée plus haut.

Merci encore. 
0
Rejoignez-nous