Calcul d'un gradient dans un Userform

pascal82

XLDnaute Occasionnel
Bonsoir à toutes et à tous,

Je viens de réaliser mon premier UserForm qui a pour objectif de calculer un gradient °C/h et °C/mn.
Le problème vient du fait que je n'arrive pas à lui faire faire:
1) Figer le format jj/mm/aaaa hh:mm:ss afin de réaliser le calcul
2) Faire apparaître un message si le format n'est pas respecter (pour les horodates début et fin ainsi que le format numériques pour les températures)
3) Faire apparaître les résultats des gradients dans l'Userform

Merci par avance
 

Pièces jointes

  • Gradient & UserForm.xlsm
    20.5 KB · Affichages: 68

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Calcul d'un gradient dans un Userform

Bonsoir pascal82,

Sans aucune prétention, un essai vite fait dans le fichier joint.

Le code ajouté est:
VB:
Private Sub CommandButton2_Click()
Dim deb As Date, fin As Date, Tempdeb As Double, Tempfin  As Double
Dim DecSep, plageTemp As Double, plageDate

DecSep = Mid(Evaluate("1 / 2"), 2, 1)
If DecSep = "," Then DecSep = "la Virgule" Else DecSep = "le Point"

TextBox5 = "": TextBox6 = ""

On Error GoTo Err_deb
  deb = CDate(TextBox2)
  If deb - Fix(deb) <= 0.000000001 Then GoTo Err_deb

On Error GoTo Err_fin
  fin = CDate(TextBox3)
  If fin - Fix(fin) <= 0.000000001 Then GoTo Err_fin

On Error GoTo Err_Tempdeb
  Tempdeb = CDbl(TextBox7)

On Error GoTo Err_Tempfin
  Tempfin = CDbl(TextBox4)

On Error GoTo 0
If deb >= fin Then
  MsgBox "la date de début est supérieure ou égale à la date de fin => calcul impossible"
  Exit Sub
Else
  plageTemp = (Tempfin - Tempdeb)
  plageDate = (fin - deb) * 24# * 3600#
  TextBox5 = Format(plageTemp / plageDate * 3600, "0.000")
  TextBox6 = Format(plageTemp / plageDate * 60, "0.000")
End If
Exit Sub

'---------------------------------------------------------------------
Err_deb:
  MsgBox "Le format de la date de début est erroné." & _
        " Veuillez saisir la date sous la forme: jj/mm/aaaa hh:mm:ss"
  TextBox2.SetFocus
  TextBox2.SelStart = Len(TextBox2)
  Exit Sub
  
Err_fin:
  MsgBox "Le format de la date de fin est erroné." & _
        " Veuillez saisir la date sous la forme: jj/mm/aaaa hh:mm:ss"
  TextBox3.SetFocus
  TextBox3.SelStart = Len(TextBox3)
  Exit Sub
  
Err_Tempdeb:
  MsgBox "Le format de la température de début est erroné." & _
        " Veuillez saisir la température sous la forme d'un nombre avec comme séparateur décimal : " & DecSep
  TextBox7.SetFocus
  TextBox7.SelStart = Len(TextBox7)
  Exit Sub

Err_Tempfin:
  MsgBox "Le format de la température de fin est erroné." & _
        " Veuillez saisir la température sous la forme d'un nombre avec comme séparateur décimal : " & DecSep
  TextBox4.SetFocus
  TextBox4.SelStart = Len(TextBox4)
  Exit Sub
End Sub

nota: j'ai éliminé l'affichage de la date parce que je ne suis pas un adepte des application.ontime.
 

Pièces jointes

  • Gradient & UserForm v1.xlsm
    27.5 KB · Affichages: 81
Dernière édition:

pascal82

XLDnaute Occasionnel
Re : Calcul d'un gradient dans un Userform

Bonsoir mapomme,

Un grand merci à vous pour la rapidité et précision de votre réponse. Déjà trop tard pour moi je vais au boulot, demain je test et reviens si nécessaire.
Encore un grand merci pour votre implication

Cordialement
 

pascal82

XLDnaute Occasionnel
Re : Calcul d'un gradient dans un Userform

Bonjour mapomme, le forum

Après quelques testes tout semble parfait. Le seul bémol est lors du renseignement des températures, le point n'est pas reconnu en virgule mais pas très grave. De plus, rien n’empêche de renseigner une date > au 31éme jour, mais la aussi pas très grave.
Avec une grande modestie et grâce à vous j'ai pu démystifié le Userform de "base" ainsi que la méthode pour commander les boutons.
Encore un grand merci

Nota1: Wouaaaaaa je n'avais remarqué la première fois mais que de couleur dans le code.
Nota2: L'application.ontime est de vous

Cordialement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 069
Membres
103 453
dernier inscrit
Choupi