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,

merci pour vos premières réponses matinales, par contre je n'arrive pas à extraire l'useform contenu dans la pièce jointe de PierreJean.

est ce qu'il y a des débuts de réponse à mon post #41 (conversion et calcul en seconde en VBA).

Bon dimanche. Je regarde çà de nouveau ce soir car j'enchaine une nouvelle nuit au boulot.
 

pierrejean

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

Re

Toutes mes excuses pour l'userform mal enregistré
Celui-ci devrait mieux faire l'affaire
En ce qui concerne la traduction en VBa de la difference de date en secondes

Code:
Function diffdate_en_secondes(debut, fin)
  diffdate_en_secondes = (fin - debut) * 24 * 3600
End Function
Sub test()
  MsgBox (diffdate_en_secondes(ActiveSheet.Range("B24"), ActiveSheet.Range("D24")))
End Sub
 

Pièces jointes

  • PJXL(2).zip
    1.9 KB · Affichages: 79

hypo78

XLDnaute Impliqué
Re : Calculs mathématiques depuis Userform

Bsr PierreJean,

quelle est l'évolution dans ce dernier userform?
-> les points et les virgules ?


Merci pour le code diffdate, dès que j'ai 2 minutes il faut que j'arrive à faire les textox forcant l'utilisateur à inserer une date sous la forme : jj/mm/aaaa hh:mm:ss

cordialement
 
Dernière édition:

Gruick

XLDnaute Accro
Re : Calculs mathématiques depuis Userform

Bonjour à tous,

Punaise, il a bien grossi le fil !
On n'a pas idée de partir en Week-end !
Bref, bravo à tous, je me sens un peu dépassé maintenant, et je me réjouis de constater que mes points et mes virgules ont encore de beaux jours devant eux.

Gruick
 

hypo78

XLDnaute Impliqué
Re : Calculs mathématiques depuis Userform

Bonjour à tous,

je tente d'ajouter dans l'userform3, une zone où l'utilisateur saisie dans 5 Textbox différentes le nombre d'année, le nombre de mois, le nombre de jours, le nombre de minutes et le nombre de secondes de manières à obtenir t exprimé en secondes.

Lorsque j'ai fait l'essai avec 2 textbox (année et mois) j'avais le message "dépasse la capacité", donc çà avait l'air de fonctionner (j'ai repoussé le pb à plus tard) et maintenant j'ai incompatibilité de type...

Code:
 Label19.Caption = ((TextBox7.Value * 365.25 * 24 * 3600) + (TextBox8.Value * (365.25 / 12) * 24 * 3600) + (TextBox9.Value * 24 * 3600) + (TextBox10.Value * 3600) + (TextBox11.Value * 60) + TextBox12.Value)

Help! help!
 

Pièces jointes

  • Rad2 (1).xlsm
    160.5 KB · Affichages: 86
  • Rad2 (1).xlsm
    160.5 KB · Affichages: 90
  • Rad2 (1).xlsm
    160.5 KB · Affichages: 90
Dernière édition:

hypo78

XLDnaute Impliqué
Re : Calculs mathématiques depuis Userform

Re,

bon je galère toujours pour trouver le résultats exprimé en secondes....en partant d'année, mois, jours, heures, minutes, secondes
J'ai même essayé avec des simples addition (pensant que çà venait de mes parenthèses )et çà ne fonctionne pas....

Je suis donc encore obligé de vous solliciter.

Est-il possible d'exprimer dans un label.caption un résultat sous la forme 2E10 par exemple.

Bonne soirée à tous

Edit : une réponse de pierrejean dans un autre post et çà fonctionne, désolé du dérangement ;)

Reédit : je me suis enflammé, car il faut que je multiplie en plus.... bon ben je cherche alors....

Code:
 For t = 3 To 12 
   If Controls("TextBox" & t).Value <> "" Then 
      tot=tot+CDbl(Controls("TextBox" & t).Value )
   End If
Next
ActiveCell =tot
J'ai essayé çà, si je fais les lignes une par une çà fonctionne mais pas en bloc comme ci dessous.

Donc j'ai vraiment besoin de vous...
Code:
Sub Tsecondes()

   tot7 = CDbl(TextBox7.Value) * 365.25 * 24 * 3600
   tot8 = CDbl(TextBox8.Value) * (365.5 / 12) * 24 * 3600
   tot9 = CDbl(TextBox9.Value) * 24 * 3600
   tot10 = CDbl(TextBox10.Value) * 3600
   tot11 = CDbl(TextBox11.Value) * 60
   tot12 = CDbl(TextBox12.Value)
   
    tot = tot7 + tot8 + tot9 + tot10 + tot11 + tot12

Label19.Caption = tot
 

Pièces jointes

  • Radv1.xlsm
    33 KB · Affichages: 90
  • Radv1.xlsm
    33 KB · Affichages: 92
  • Radv1.xlsm
    33 KB · Affichages: 89
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

Re

@ laetitia

Les compliments font toujours plaisir mais ils prennent une saveur particulière lorsqu'ils sont emis par ceux ou celles que l'on estime
Pour t'avoir croisé sur quelques fils je peux confirmer que
'Aux ames bien nées la valeur n'attend pas le nombre des années'
Merci infiniment pour ton appreciation (et transmet mes salutations à ton Papy a qui tu dois ,je crois une initiation à notre ami commun EXCEL )

@ Hypo

Je jette un oeil au problème
 
Dernière édition:

Fo_rum

XLDnaute Accro
Re : Calculs mathématiques depuis Userform

Bonjour,

et avec une fonction d'Excel ?

Code:
Label8.Caption = DateDiff("s", CDate(TextBox15), CDate(TextBox16))

@pierrejean* :D: de 45min58 à 46min08 ta fonction renvoie 1s de moins que l'autre :confused:
@laetitia* :D : n'as-tu pas été tentée par un module de classe ?

* je fais mienne ton opinion à propos de l'autre ;) !
 

pierrejean

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

Re

Merci Fo_rum pour avoir detecté mon erreur
Ce n'est pas la fonction qui est defaillante mais l'usage que j'en ai fait
Il y a lieu de remplacer:
Label8.Caption =Int(diffdate_en_secondes(CDate(TextBox15), CDate(TextBox16)))
par
Label8.Caption = Round(diffdate_en_secondes(CDate(TextBox15), CDate(TextBox16)))
ce qui est fait dans le fichier joint
Avec mes excuses à tous
 

Pièces jointes

  • Radv1.xlsm
    34.7 KB · Affichages: 87
  • Radv1.xlsm
    34.7 KB · Affichages: 91
  • Radv1.xlsm
    34.7 KB · Affichages: 92

Gruick

XLDnaute Accro
Re : Calculs mathématiques depuis Userform

Bonjour,

Très modeste contribution sur les puissances 10, pour afficher une notation dite scientifique :
....(IIf(lavaleur < 1, lavaleur, Format(lavaleur, "0.00E+00")))
Avec un point, oui, un point.

Et donc, pour les premiers calculs, sur les A1 et Lambda, même approche, le point :

Private Sub Calcul_Click()If Me.A0 <> "" And Me.A1 <> "" And Me.L <> "" Then
Me.té = Format(WorksheetFunction.Ln(A0 / A1) / L, "##0.000000")
ElseIf Me.A0 <> "" And Me.té <> "" And Me.L <> "" Then
Me.A1 = Format(Exp(1) ^ (-L * té) * A0, "##0.000000")
Else
MsgBox "Il manque une variable"
End If
End Sub

Comme ça, les textboxes contiendront des nombres, lesquels s'afficheront avec une virgule. Va comprendre ?
Donc, on peut se resservir de ces données pour calculs ultérieurs, ce qui pourrait éviter les replace et les CDbl, mais là je m'avance peut-être.

Peut-être que VBA interprète toutes les virgules comme séparateur dans une instruction avec arguments ???:confused:

Tiens, pendant que j'y suis, comment calcules-tu le T (le grand T) en textbox3 ? Qu'est-ce ?

A bientôt pour de nouvelles aventures...

Gruick
 
Dernière édition:

Discussions similaires