Calculs mathématiques depuis Userform

hypo78

XLDnaute Impliqué
Re : Calculs mathématiques depuis Userform

Re,
je vous joins une petite pièce jointe (rien à voir avec le projet définitif), pour vous poser encore quelques questions.

la valeur t s'exprime en secondes. Sur la feuille1 de mon classeur, j'arrive à calculer la différence entre 2 dates et à la convertir en secondes mais en VBA pour l'intégrer à l'userform1??

sur la même feuille j'ai fait un petit tableau pour les conversions de Curie en Becquerel ou l'inverse, De Gray en Rad... mais de là à le mettre en VBA et l'intéger à un Userform??

dernière chose (pour le moment), pour revenir à l'userform qui concerne les puissances de 10 et préfixe, Fo_rum propose un résultat sous 2 formes, je verrai bien une troisieme, exemple 12 000 000 000 ou 12Tera ou 12E+12 (comme sait nous l'annoncer EXCEL dans une cellule de tableur)

Ah j'oubliais : rien d'urgent, profitez de votre dimanche ;)
 

Fichiers joints

ROGER2327

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

Re...


Re,

je reviens déjà après avoir testé vos différentes solutions :

(...)
- @ roger : # 34, çà a l'air d'être une super solution, mais je suis encore très loin de bien comprendre et d'adapter ce genre de code
(...)

Le code de #34 est mis en œuvre dans le fichier joint à #16...​


Bonne nuit !


ROGER2327
#5382


Mercredi 18 Décervelage 139 (Saints Pirates et Flibustiers, thaumathurges - fête Suprême Quarte)
25 Nivôse An CCXX, 1,4965h - chat
2012-W02-7T03:35:30Z
 

hypo78

XLDnaute Impliqué
Re : Calculs mathématiques depuis Userform

Bjr Roger,

oui j'étais en train de bosser dessus c'est ce que je viens de voir, j'ai même compris l'explication.

j'ai avancé sur l'userform3 pour la présentation du résultat sous les 2 formes, reste à trouver la 3ème, mais mon code n'est pas des plus beau, pour reprendre une expression, c'est plus un Patchwork.... qu'un code construit...

Bonne nuit.
 

Fichiers joints

Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

Bonjour le fil, bon dimanche à tous

Pierrejean
Re ... Edit: Euh !!! je reviens un peu sur l'efficacité des codes "Agrafés" mais je n'ai malheureusement pas le temps d'aller plus loin
Je me doutais bien que mon code est aussi efficace que je suis doué pour faire des galettes au sarrasin
(pourtant j'en ai tâté du billig ;) )

J'ai déjà évoqué dans plusieurs fils que les maths et moi cela fait quatre ( à mon regret )
Tu peux stp, préciser où sont les grumeaux dans ma pâte VBA soumise plus bas dans le fil ?
 

pierrejean

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

Re

@ l'ami Staple
les grumaux n'etaient pas si nombreux:
Il manquait le 1er / dans Const pfs As String = "/Tera/Giga/Mega/Nano/pico" ne serait-ce que pour avoir le même nbre d'items
Ensuite, dans IIf(IsEmpty(TextBox2), 0, CDbl(TextBox2)) , même si TextBox2 est vide Cdbl(TextBox2) est evalué et envoie en Debug
Pour ma part , je n'utilise jamais IIf et meme rarement If .... Then....
je prefere
If
else
end if
Cela allonge certes les macros , mais l'efficacité est rarement liée à la concision (la comprehension non plus)
Par contre il y a bien eu apport (la preuve en est que hypo retient notre version laquelle a demandé un petit ajustement supplementaire voir derniere version)
 

Fichiers joints

Dernière édition:

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
 

Fichiers joints

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:

pierrejean

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

Re
Exact: La derniere evolution de l'userform traite le problème du point dans TextBox1
Je regarderai dans la journée le pb d'insertion de date au format voulu
 

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!
 

Fichiers joints

Dernière édition:

hypo78

XLDnaute Impliqué
Re : Calculs mathématiques depuis Userform

Bjr Pierrejean,

je vais plus que m'en inspirer... trop top :D

un gros merci
 

laetitia90

XLDnaute Barbatruc
Re : Calculs mathématiques depuis Userform

bonjour tous :):):):):):):):):):):)
apporte rien au fil trop nulle en math:(:(:(
seulement féliciter l'ami pierrejean
que dire a 73 ans... l'age de mon papy...
vous êtes un grand monsieur un exemple pour nous
bisous a+ leti
 

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
 

Fichiers joints

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
 

Fichiers joints

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


Haut Bas