Calculs mathématiques depuis Userform

hypo78

XLDnaute Impliqué
Bonjour à tous,

je débute un nouveau projet sur la base de calcul autour de la radioactivité.
Dans l'exemple ci-joint, vous trouverez un userform dans lequel on doit saisir des données (3 ou 4).
En fonction de l'utilisation, nous n'aurons pas toujours les mêmes données.
D'où ma question : comment obtenir un résultat de calcul dès que l'on a assez de données?

Je sais que ce n'est pas clair, mais c'est pas facile à expliquer, l'exemple sera beaucoup plus parlant.

Merci d'avance.

Viendra après le temps des conversions......
 

Pièces jointes

  • Rad.xlsm
    16.2 KB · Affichages: 146
  • Rad.xlsm
    16.2 KB · Affichages: 148
  • Rad.xlsm
    16.2 KB · Affichages: 147

hypo78

XLDnaute Impliqué
Re : Calculs mathématiques depuis Userform

Bonjour à tous,

@pierrejean : impeccable tout çà. c'était "juste" les zéros qui manquait pour l'addition?
@gruick : je vais essayer ta proposition, sachant que j'ai encore quelques formules à ajouter à la partie calcul de décroissance, dont le calcul de T selon les formules en bas à droite de mon Userform.

Le grand T : c'est la période radioactive. Elle est propre à chaque radioélément. C'est le temps qui s'écoule pour que l'activité diminue de moitié. ex : Technecium99m utilisé en milieu médical 6 heures, Uranium238 4.5 milliards d'années.:mad:
-> dans différents calcul la période est exprimée en secondes d'où ce besoin.

Merci à tous, @ bientôt
 
Dernière édition:

hypo78

XLDnaute Impliqué
Re : Calculs mathématiques depuis Userform

Re,

pour palier à toutes les éventualités de calcul possible dans la partie décroissance avec mes 6 textbox, la solution de Roger (post#34) me parait adaptée mais j'ai un peu de mal à comprendre :
p = p + 2 ^ (i - 1)

i c'est ok on le fait varier de 1 à 6 dans mon cas mais p?? on le remplace par quoi?

Merci de m'éclaircir.
 

ROGER2327

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

Bonsoir hypo78


Re,

pour palier à toutes les éventualités de calcul possible dans la partie décroissance avec mes 6 textbox, la solution de Roger (post#34) me parait adaptée mais j'ai un peu de mal à comprendre :


i c'est ok on le fait varier de 1 à 6 dans mon cas mais p?? on le remplace par quoi?

Merci de m'éclaircir.

Avec i variant de 1 à 6, vous obtenez 64 valeurs possibles de
0 (binaire 00000) indiquant six boîtes vides à 63 (binaire 111111) indiquant six boîtes non-vides.
Si on obtient p=37 (binaire 100101), cela signifie que les boîtes 2, 4, 5 sont vides et les boîtes 1, 3, 6 ne sont pas vides.
Si ce cas vous intéresse, vous le traiterez dans la partie du code
Code:
Select Case p
Case 37: [I]ici le code correspondant à la situation "Boîtes 2, 4, 5 vides"[/I]
...
End Select
Est-ce plus clair ? (Ou, peut-être, n'ai-je pas compris la demande ?)​

Bon courage !


ROGER2327
#5389


Vendredi 20 Décervelage 139 (Saint Outlaw, aristocrate - fête Suprême Quarte)
27 Nivôse An CCXX, 9,4367h - plomb
2012-W03-2T22:38:53Z
 

pierrejean

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

Re

Les 0 dans les TextBox sont necessaires pour eviter de faire tousser EXCEL sur Cdbl(TextBox2) avec TextBox2=""

En l'absence de ROGER vois ce petit fichier qui tente d'expliquer comment on passe du binaire au decimal
 

Pièces jointes

  • essai_binaire.xlsx
    9.6 KB · Affichages: 120

ROGER2327

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

Bonjour hypo78, pierrejean


J'ai oublié de commencer par le commencement ! Merci à pierrejean d'avoir apporté ce qui manquait.​


Bonne journée.


ROGER2327
#5390


Samedi 21 Décervelage 139 (Chaire du Dr Faustroll - fête Suprême Première seconde)
28 Nivôse An CCXX, 4,4094h - zinc
2012-W03-3T10:34:57Z
 

hypo78

XLDnaute Impliqué
Re : Calculs mathématiques depuis Userform

me revoilà déja :eek:

j'ai commencé à écrire mes différentes formules et celle-ci ne renvoie rien

Code:
 'calcul de A1
    Case 33: Me.TextBox2.Value = CDbl(Me.TextBox1.Value) / (2) ^ CDbl(Me.TextBox6.Value)

je cherche à appliquer la formule A1=A0 / 2^n

merci d'avance pour vos lumières
 

pierrejean

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

Re

Modification minimum a effectuer:

Code:
Sub calc()
Dim p As Byte, i As Byte
    For i = 1 To 6
        With Me.Controls("TextBox" & (i))
            .Text = Replace(.Text, ".", ",")
            .ForeColor = 0
            If .Text <> "" Then
               p = p + 2 ^ (i - 1)
            Else
               .Text = 0
            End If
        End With
    Next
    On Error GoTo E
    Application.EnableEvents = False
    Select Case p
    Case 33: Me.TextBox2.Value = CDbl(Me.TextBox1.Value) / (2) ^ CDbl(Me.TextBox6.Value)
    Case 25, 29: Me.TextBox2.Value = CDbl(Me.TextBox1.Value) / Exp(CDbl(Me.TextBox4.Value) * CDbl(Me.TextBox5.Value))
    Case 26, 30: Me.TextBox1.Value = CDbl(Me.TextBox2.Value) * Exp(CDbl(Me.TextBox4.Value) * CDbl(Me.TextBox5.Value))
    Case 19, 23: Me.TextBox4.Value = Log(CDbl(Me.TextBox1.Value) / CDbl(Me.TextBox2.Value)) / CDbl(Me.TextBox5.Value)
    Case 11, 15: Me.TextBox5.Value = Log(CDbl(Me.TextBox1.Value) / CDbl(Me.TextBox2.Value)) / CDbl(Me.TextBox4.Value)
    Case Else: For i = 1 To 5: Me.Controls("TextBox" & (i)).ForeColor = 255: Next
    End Select
    Application.EnableEvents = True
Exit Sub
E:
    MsgBox "Une erreur imprévue est survenue..."
End Sub

Explication:
Pour avoir 33 il faut que l'on teste les 6 premieres TextBox d'ou
For i = 1 To 6 au lieu de For i = 1 To 5
ensuite:
Pour avoir des Cdbl(TextBox..) valides il faut ne pas avoir de "" d'ou
If .Text <> "" Then
p = p + 2 ^ (i - 1)
Else
.Text = 0
End If

au lieu de
If .Text <> "" Then p = p + 2 ^ (i - 1)

Enfin, pour tester, commencer par inscrire un nombre pour TextBox6 soit n puisqu'il n'y a pas de sub demandant le calcul sur TextBox6 : Je n'ai pas voulu modifier , ne sachant pas comment est determiné n
 

hypo78

XLDnaute Impliqué
Re : Calculs mathématiques depuis Userform

Re Pierrejean,

puisqu'il n'y a pas de sub demandant le calcul sur TextBox6

effectivement çà venait de là.

Encore merci.

Je joins le fichier pour l'état d'avancement de mon outils.
 

Pièces jointes

  • Radv3.xlsm
    31.6 KB · Affichages: 101
  • Radv3.xlsm
    31.6 KB · Affichages: 102
  • Radv3.xlsm
    31.6 KB · Affichages: 101

pierrejean

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

Re

Par mesure de securité je te propose :

Code:
Private Sub ComboBox1_Change()
Label22 = ""
Label23 = ""
Label39 = ""
End Sub
Private Sub TextBox13_Change()
Label22 = ""
Label23 = ""
Label39 = ""
End Sub
Private Sub TextBox14_Change()
Label22 = ""
Label23 = ""
Label39 = ""
End Sub

Apres modification de valeurs ^10 ou préfixe > obligation de cliquer sur afficher la valeur d'ou : soit pas de valeur soit valeur reellement correspondante
 

hypo78

XLDnaute Impliqué
Re : Calculs mathématiques depuis Userform

Bonjour à tous,

le projet touche à sa fin.:)
Si vous voulez jetez un oeil à l'ensemble du code pour me conseiller sur la gestion d'erreur, ergonomie ou autre n'hésitez pas.
Merci à tous ceux qui ont contribué à l'élaboration de cet outil.;)
 

Pièces jointes

  • Radv3.xlsm
    252.4 KB · Affichages: 104
  • Radv3.xlsm
    252.4 KB · Affichages: 103
  • Radv3.xlsm
    252.4 KB · Affichages: 103

hypo78

XLDnaute Impliqué
Re : Calculs mathématiques depuis Userform

Re,

encore une petite question, dans la textbox33 lorsque je saisi un nombre j'aimerai qu'à la validation celui ci s'écrive sous la forme
000 000 000 comme le label19 juste au dessus.


Dans la partie décroissance, si je saisis A0, A1 et T, il me calcule lambda mais pas t et n alors que les données sont présentes.

Edit : je crois que j'ai des formules de base qui sont fausses donc pas la peine de trop décortiquer, mais j'ai quand même une question avant de reprendre cette partie, est ce que l'on peut trouver un même case sur différents calculs? ou alors faut-il sous un même case lui proposer de faire plusieurs calculs??

Merci de votre aide.
 

Pièces jointes

  • rad3.xls
    342 KB · Affichages: 108
  • rad3.xls
    342 KB · Affichages: 108
  • rad3.xls
    342 KB · Affichages: 106
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 724
Messages
2 081 937
Membres
101 844
dernier inscrit
pktla