Premièrement je suis au Canada, on utilise la mesure impériale.
Je suis en train de faire un userform de saisie pour des devis.
On doit donc saisir des données de ce type, exemple: 1 1/2 ou 1 3/4 ou 10 15/16.
il s'agit de données de longueur en pouce.
j'ai 5 textbox :
Textbox1 = Hauteur des meubles (saisie dans l'userform)
Textbox2 = Largeur des meubles (saisie dans l'userform)
Textbox3 = largeur de l'encadrement (saisie dans l'userform)
Textbox4 = textbox1 - (textbox3 * 2) (résultat automatique dans l'userform)
Textbox5 = textbox2 - (textbox3 * 2) (résultat automatique dans l'userform)
Private Sub TextBox1_AfterUpdate()
Worksheets("RDS").Range("B2") = TextBox1
End Sub
Private Sub TextBox2_AfterUpdate()
Worksheets("RDS").Range("B3") = TextBox2
End Sub
Private Sub TextBox3_AfterUpdate()
TextBox4 = Val(TextBox1) - Val(TextBox3 * 2)
TextBox5 = Val(TextBox2) - Val(TextBox3 * 2)
Worksheets("RDS").Range("B4") = TextBox3
End Sub
Private Sub TextBox4_Change()
Worksheets("RDS").Range("B5") = TextBox4
End Sub
Private Sub TextBox5_Change()
Worksheets("RDS").Range("B6") = TextBox5
End Sub
Impossible d'obtenir mes résultats en fraction, si je saisie avec des virgules tout va bien.
J'ai fait les recherches habituelles sur le forum mais rien.
Bonjour.
Pour convertir le texte fraction en Double c'est facile.
La conversion inverse est plus délicate.
Je risquerait de vous proposer quelque chose de trop sophistiqué basé sur les inverses des parties fractionnaires successives…
Il me faut des règles plus précises.
À +
Bonjour.
Pour convertir le texte fraction en Double c'est facile.
La conversion inverse est plus délicate.
Je risquerait de vous proposer quelque chose de trop sophistiqué basé sur les inverses des parties fractionnaires successives…
Il me faut des règles plus précises.
À +
Excel grâce à son "Entry Behavior" en feuille de calcul sait interpréter les saisies fractionnaires.
l'astuce consiste donc en VBA a utiliser les fonction de feuille de calcul et/ou la fonction EVALUATE
le format de cellule fractionnaire permet également l'affichage correct.
pour respecter les "mesures impériales" un arrondi au 1/16 permet un affichage adéquat
on pourra egalement faire appel à la fonction CONVERT
=CONVERT(A1;"in";"cm") et inverse
=CONVERT(B1;"cm";"in")
X=(1/16)*ENT((mesure+1/32)/(1/16))
format de cellule : # ??/??
4,603887213
4 5/8
11,75 cm
18,5293338
18 1/2
46,99 cm
2,025657971
2
5,08 cm
15,0325142
15 1/16
38,26 cm
3,845803926
3 7/8
9,84 cm
18,97052033
19
48,26 cm
3,281174119
3 1/4
8,26 cm
9,299174401
9 5/16
23,65 cm
15,67203539
15 11/16
39,85 cm
16,61179461
16 5/8
42,23 cm
edit : l'exemple n'était pas en accord avec la formule
@carcharodon-carcharias : Je n'ai pas mis mon fichier exemple car il est trop lourd en plus des liens vers d'autres feuilles, c'est pour cela que j'ai pris le temps d'expliquer au mieux mon problème ainsi que le code concerné. Je te remercie pour tes conseils. La solution m'a été donnée un peu après toi.
@Modeste geedee : Tu as parfaitement compris et répondu à ma question. Je te remercie pour ta solution qui fonctionne.
@Dranreb : Je n'ai pas bien compris ta question : "Pour convertir le texte fraction en Double c'est facile" mais je te remercie d'avoir pris le temps de me lire. Je suppose que Modeste geedee lui a compris et répondu à ta question, je pense.
Merci pour l'intéret que vous portez à Excel et aux débutants !!!
Pour revenir au fil, j'ai ajouté dans le code de la textbox3 la selection de la feuille "RDS" car je me retrouvais avec des nombres dans les feuilles active au lancement du code pendant le test.